株式会社Infigate

Blog

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

この記事を書いた人

Infigate

北海道札幌市のシステム開発会社、株式会社Infigateです。 活動内容やシステム開発技術に関するTips、DX化に関連する記事やその他地域活性化に繋がる情報等を発信していきます。

お問い合わせ

Contact

お見積ご相談は無料です。
どうぞお気軽にご相談くださいませ。