見出し画像

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の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

※重要:Botが生成されますとデフォルトでPUBLIC BOTが有効になっています。公開したくない場合は、こちらの設定を無効(下記図参照)にしてください。

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」ボタンをクリックしますとデプロイは完了です。

※重要:ADD TO SERVERで選択するサーバーは「.env」ファイルで指定したサーバーである必要があります。

7  ChatBotと会話を始める

①Slash Command(/)を入力しますと利用できるコマンドとして②「/chat message」が表示されますのでこちらを選択し、messageの後ろに聞きたい内容を入力してください。

メッセージを入力した後、Enterキーを押しますと新しくスレッドが生成され、そのスレッドに返答が表示されます。

8  まとめ

text-davinci-003(GPT-3.5モデルの一つ)を利用すればChatGPTよりも柔軟に対応できるチャットボットが簡単に作れます。

また、「config.yaml」ファイルを修正しますとよりニーズにあったチャットボットが作れますので色々と試してみてください。

この記事が気に入ったらサポートをしてみませんか?