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 ファイルも用意しています
必要に応じて使ってください