OpenAI GPT ChatAPI を使って Slack チャットボットを作成する
September 18, 2023
OpenAI Chat API を利用したシンプルな Slack Chat Bot を作成しましたのでご紹介します。
使い方
最初にどのようなものを作ったのかを記載します(デモ)。
ボットを追加したパブリックチャンネルまたはプライベートチャンネルでは、ボットに対してメンションすることで、質問が可能です。
ボットとのダイレクトメッセージ (DM) でも質問が可能です。
DM の場合は、メンションは不要です。
質問したスレッドに連続して質問することで、ボットが、そのスレッドの一連の内容を把握して対話を続けることができます。
(例えば、一連のスレッドの要約や しりとり ができます。)
アプリの概要
以下のリポジトリにて公開しているものです。
https://github.com/hnishi/simple-ai-slack-bot
Slack の Python SDK である Bolt を利用して作成しています。
導入に必要なもの
- OpenAI API の利用登録
- API の利用は有料のため、登録が必要になります
- アプリを動かす PC (サーバー)
- Docker もしくは Python が動かせること
- アプリを導入する Slack ワークスペース
導入方法
Slack アプリの作成
Slack ワークスペースのアプリの管理画面から、新規アプリを作成します。
マニュアル を見ながら、以下の一連の設定を有効にします。
Socket Mode (ソケットモード)
- On
Bot Token Scopes (ボットトークンスコープ)
- app_mentions:read
- chat:write
- im:history
- im:read
- im:write
App Token Scopes (アプリトークンスコープ)
- connections:write
Event Subscriptions (Subscribe to bot events) (イベントサブスクリプション)
- app_mentions:read
- message.im
Messages Tab (メッセージタブ)
- App Home —> Show Tabs —> Messages Tab
- Check
Allow users to send Slash commands and messages from the messages tab
ソースコードのダウンロード
GitHub からソースコードをダウンロードします。
git clone https://github.com/hnishi/simple-ai-slack-bot.git
設定ファイルを作成する
ダウンロードしたソースコードの中の .env.sample
をコピーして .env
ファイルを作成します。
ここに、OpenAI API Key や Slack ボットトークンなどを設定します。
Slack のトークンは、先ほどの Slack アプリの設定画面からコピーしてください。
OpenAI の API キーと オーガナイゼーション ID は OpenAI API の管理画面 から取得します。
SLACK_BOT_TOKEN=xoxb-token // Slack ボットトークンSLACK_APP_TOKEN=xapp-token // Slack アプリトークンOPENAI_API_KEY=sk-token // OpenAI API キーOPENAI_ORGANIZATION=org-token // OpenAI オーガナイゼーション ID (行を削除で省略可能)MODEL_NAME=gpt-3.5-turbo // モデル名
モデル名は、OpenAI のドキュメント に利用可能なモデルの記載がありますが、gpt-3.5-turbo のままで問題ないです。
アプリを起動する
Docker を使う場合
Docker を利用 することで、Python や必要な依存ライブラリのインストールが不要になります。
以下のように Docker コンテナを起動します。
docker compose up
しばらく待つと、アプリが起動するため、Slack でボットと対話が可能になります。
Docker を利用しない場合
自前の Python 実行環境を利用する場合は、以下のような手順を参考に動かします。
依存パッケージは Poetry を利用しています。
Poetry のインストール方法は、以下のページを参考にしてください。
https://python-poetry.org/docs/#installation
以下のように、必要なパッケージをインストールします。
poetry install --no-root
アプリ を動かす場合は、以下のコマンドを打ちます。
poetry run python app.py
まとめ
以上、シンプルな Slack チャットボットの利用方法でした。
要望やコメントなどあれば、以下のリポジトリの issues によろしくお願いします!
https://github.com/hnishi/simple-ai-slack-bot/issues