GPT-3.5のチャットボットをDiscordへ導入するまでの流れ
こんにちは、Choimirai Schoolのサンミンです。
0 はじめに
最近は朝起きたら世界が変わっている体験をよくしています。
2022年11月30日に発表されたChatGPTも筆者の世界を変えたツールの一つ。但し、OpenAI側がいろんなルールを設定してあるので制約も多い。より柔軟なChatBotをご希望の方はtext-davinci-003を利用して自前のチャットボットが作れます。
12月23日にOpenAIの開発チームがDiscord用のチャットボットを作るソースコードを公開してます。今回のnoteではこのコードを使ってDiscordのChatBotを作る方法を紹介します。ChatBotを作るのにかかる所要時間はDiscordのBotを作った経験がある方であれば1時間程度です。
Discordに招待したChatBotとチャットを交わした時の様子です。
1 Pre-requisite
DiscordのBotを作ったことがあることを前提で進めさせていただきます。Botの作り方は下記のページを参考にしてください。
2 全体の流れ
今回紹介する開発の流れは、
①GitHubのリポジトリからソースコードを取得
②Discord Botの作成
③.envファイルの設定
④プロセスを実行
⑤ChatBotを該当Discord Serverへ招待
⑥チャット開始
3 ソースコードの取得
Discordへ招待するチャットボットは下記のコードを利用します。
4 Discord Botの作成
ボットを作る手順は下記のページを参考にしてください。
今回作るチャットボットはユーザーの質問に対し新しいスレッドを作って回答する仕組みとなっています。そのため、いくつかの権限を与える必要があります。必要な権限のリストは下記の通りです。こちらの権限はボット招待用のURLに設定ずみとなっていますので別途設定する必要はありません。
Send Messages
Send Messages in Threads
Create Public Threads
Manage Messages (only for moderation to delete blocked messages)
Manage Threads
Read Message History
Use Application Commands
5 .envファイルの設定
ChatBotをデプロイするためには4つの環境設定が必要です。
①OPENAI_API_KEY
②DISCORD_BOT_TOKEN
③DISCORD_CLIENT_ID
④ALLOWED_SERVER_IDS
これらの設定は「.env」ファイルで行います。上述したステップで取得したコードには「.env.example」ファイルがあります。
「.env.example」のファイル名を「.env」に変更し必要な値を設定してください。
5 プロセスの実行
「.env」ファイルの設定が終わりましたら、残りはアプリを実行し生成されるURLからChatBotを招待するのみです。下記のコマンドで必要なパッケージをインストールし、アプリを実行してください。
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
python -m src.main
全ての設定が問題なく済んだのであれば、python -m src.mainを実行した後、下記のように「Invite URL」が表示されます。
6 ChatBotをDiscordのサーバーへ招待
Invite URLのリンクを押下しますと下記のような画面に遷移します。下部にある「ADD TO SERVER」のドロップダウンリストから該当サーバーを選択し、「Continue」ボタンをクリックしますとデプロイは完了です。
7 ChatBotと会話を始める
①Slash Command(/)を入力しますと利用できるコマンドとして②「/chat message」が表示されますのでこちらを選択し、messageの後ろに聞きたい内容を入力してください。
メッセージを入力した後、Enterキーを押しますと新しくスレッドが生成され、そのスレッドに返答が表示されます。
8 まとめ
text-davinci-003(GPT-3.5モデルの一つ)を利用すればChatGPTよりも柔軟に対応できるチャットボットが簡単に作れます。
また、「config.yaml」ファイルを修正しますとよりニーズにあったチャットボットが作れますので色々と試してみてください。