OpenAIのチャットボットChatGPTを使ってDiscordBotを作成する方法
2023/2/9 2023/2/12 システム
はじめに
本ブログでも度々ご紹介しているChatGPTの機能をDiscord上で利用する方法について解説します。
自分が権限を持つサーバー上にBotを招待して、ChatGPTの機能を持つDiscordBotを自由に利用できるまでをゴールにします。
必要なもの
- pythonの実行環境(ローカル上、またはサーバー上に用意)
- ソースコード一式(後述)
- Discordのアカウント
- OPENAIのアカウント
今回はソースコードを4行程しか書きません(しかも設定ファイル)。
ノンプログラマでもできる導入方法となります。
pythonの実行環境
windows、mac、Linuxでそれぞれ構築方法が異なりますが、いずれも難しいものではないのと構築方法はネット上に多数存在するため割愛します。
以下コマンドをcliで打ち込んでバージョンが返ってくる状態を作ります。
python3 -V
または
python -V
pip -V
使用するソースコード
ちょっと使ってみたい程度であればわざわざ一から作る理由はないので、既存のリポジトリをクローンして作っていきます。
以下2つのGithubのリポジトリで実際に動作確認をしてみました。
ChatGPT Discord Bot
gpt-discord-bot
結論からいうと前者のChatGPT Discord Botは動作しませんでした。
ただ私が実行した2/8のタイミングではちょうどREADMEにも
2023-02-08 Update: ChatGPT API is highly unstable now
と追記されており、APIレスポンスが不安定な状態だったようです。
頻繁にアップデートがされているので再度試すとうまく動作するかもしれません。
今回は後者のgpt-discord-botでの使い方を説明していきます。
gpt-discord-botをリンクからダウンロードします。
ダウンロード方法はcloneでもzipでダウンロードでも構いません。
zipの場合はダウンロードフォルダを実行環境の中で解凍します。
ソースコードの設定ファイルを設定する
ソースコードの中に.env.exampleがありますので、.envにコピーしてリネームします。
cp .env.example .env
.envにファイル名が変わって複製されますので、続いてファイルを開きます。
vim .env
ファイルを開くと中身は以下のようになっています。
OPENAI_API_KEY=***
DISCORD_BOT_TOKEN=***
DISCORD_CLIENT_ID=***
ALLOWED_SERVER_IDS=***
SERVER_TO_MODERATION_CHANNEL=1:1
それぞれの値を設定していきます。
OPENAI_API_KEY
OpenAIのサイトにユーザー登録をします(こちら)
サインアップはGoogleAccountでも利用可能
左上メニューから「View API Keys」のページを開きます。
「Create new secret key」をクリックするとAPI keyが生成されますので、それをどこかにコピーしてOPENAI_API_KEYの部分にペーストしましょう。
DISCORD_BOT_TOKEN
webでDiscordにログインし、DEVELOPER PORTALにアクセスします(こちら)
「New Application」をクリックします。
左ペインの「General Information」からBotの名前やアイコンを設定します。
ここでは「秘書」としています。
Botタブをクリックします。
「Reset Token」をクリックするとBotのtokenが入手できますので、そちらをコピーして設定ファイルのDISCORD_BOT_TOKENにペーストします。
DISCORD_CLIENT_ID
続いてOAuth2をクリック。
「CLIENT ID」をコピーして設定ファイルのDISCORD_CLIENT_IDにペーストします。
ALLOWED_SERVER_IDS
権限があるDiscordのサーバーアイコン上で右クリックするとIDをコピーという項目がありますので、そちらをコピーしてALLOWED_SERVER_IDSにペーストします。
複数サーバーを許容する場合はIDをカンマ区切り「,」で指定します。
以上で設定ファイルの入力は終了です。
招待用のURLを生成する
再びDEVELOPER PORTALでの作業となります。
OAuth2の「URL Generator」から「bot」を選択し、与える権限を以下のように設定します。
すると最下部にURLが生成されますので、ブラウザからアクセスして、呼びたいサーバーに招待します。
DEVELOPER PORTALでの作業は以上です。
ここまでで、Discord上にボットが追加されているがオフラインの状態となると思います。
ソースコードの依存関係のインストールと起動
ソースコードの依存関係はソース群の中にある「requirements.txt」に定義されていますので、requirements.txtを指定して依存関係をインストールします。
pip install -r requirements.txt
依存関係のインストールが終了したら、以下のコマンドでプログラムを実行しましょう
python3 -m src.main
または
python -m src.main
無事に起動ができると、これまでオフラインだったBotがオンラインに変わると思います。
「/chat」と打ち込んでボットにメッセージを送りましょう。
thread内で返信がきて会話をすることができます。
参考
gpt-discord-bot
https://github.com/openai/gpt-discord-bot
GPT-3を使ったdiscord用のChatBot gpt-discord-bot を試す
https://note.com/npaka/n/n032503f002da
chatGPTをdiscordbotにしよう!
https://qiita.com/rimycka/items/65672658a3ca968f5282