tbls-ask-agent-slackの動かし方

まずはこちらのレポジトリをクローンする

環境変数を設定するためのファイルをコピー(direnvを使って環境変数の設定をしています)
% cp .envrc.sample .envrc

自前のOPENAI_API_KEYをセット

https://api.slack.com/apps にアクセスして Slack App を作る

Create Apps から From manifest を選ぶ

インストールする workspace を選んで、
の内容をコピペして貼り付ける
Appを作成したら OAuth & Permissions の項目から xoxb-
で始まる SLACK_OAUTH_TOKEN
を環境変数に設定する

同じく Basic Information から xapp-
で始まる SLACK_APP_TOKEN
をコピーする

テスト用のsample schemaを用意する
$ cp schemas/config.yml.sample schemas/config.yml

sampe schema の中身はこんな感じになっています
デフォルトでは k1LoW/tbls-ask
に含まれている wordpress と mysql の sample database のスキーマが読み込まれます

ここまで準備ができたら以下のコマンドを実行(Golangの実行環境が整っている前提)
go run main.go

正常に起動したらターミナルに
Connecting to Slack with Socket Mode...
Connected to Slack with Socket Mode.
というログが出るはず

メンションして話しかけるとすぐにBotから返信がきます

スキーマを選ぶように言われるので、ここでは wordpress を選びます

しばらく待つと、以下のように説明文と共に目的のクエリが返ってきます

ご自身のサービスに合わせた回答を生成するには、K1Low/tbls
を使ってDBからスキーマファイルを作成する必要があります(これが先ほどサンプルで設定した schema.json
の正体です)

tlbs の使い方はこちらの記事を参照

安定して動かしたい方むけに k8s の manifests ファイルも用意しています
必要に応じて使ってください