見出し画像

DiscordにGPT-3によるChatAIを導入

はじめに

@yutakikuchi_です。
今日は自身が持つDiscord(Server)に対してGPT-3を組み込み、Chat形式でAIに問い合わせを行うものを作ります。私がDiscordとGPT-3を連携させた構成(Discord, Google App Engine, GPT-3 API)は下記のようになります。

DiscordからGoogle App Engineを経由してGPT-3に接続

私が運営している新しいフィットネスサービス「Do」のDiscordサーバーに 教えてAiくんというChannelにてGPT-3が利用できるようにしているので、もしよかったら試しに使ってみてください。ここではフィットネス・美容・健康に関する質問の投稿をOKとしています。

必要な作業内容は次のものになります。

設定手順1. Open AI

全体的な流れの目的として、gpt-discord-botの.envファイルに対して様々な値を書き込むために、その値を用意するための作業になります。

まずはOpenAI側からの手順を説明します。
GPT-3系のAIモデルをAPIとして利用するためには料金を払う必要があります。そのために下記リンクからクレジットカードなどの支払い方法で設定を済ませておく必要があります。

https://platform.openai.com/account/billing/overview

またGPT-3のAPIの利用者が個人の場合、万が一使いすぎて大きな課金が発生しないようにBillingのUsageに対してlimitを小さめに設定しておくと良いと思います。Hard limitがその金額に到達するとRequestをRejectするラインです。Soft limitは設定されたemail addressに通知が飛ぶ。

Hard limit, Soft limit

https://platform.openai.com/account/billing/limits

上の設定が完了したら、Open AIのAPIを利用するために下記のURLから「Create new secret key」ボタンを押下してkeyを発行します。発行したkey(①)は後ほど.envファイルに書き込むのでメモをしておきます。
https://platform.openai.com/account/api-keys

設定手順2. Discord Server

次にGTP-3と接続を行いたいDiscord Serverの情報を取得します。どのDiscord(Server)と接続すべきかの情報を.envファイルが必要とするため、その情報をDiscordアプリから取得します。Discord Serverのアイコンを右クリックすると「IDをコピー」というメニューが出てくるので、それをクリックしてDiscord ServerのID(②)をコピーします。IDをコピーメニューが出ない場合、はDiscord -> Preference -> 詳細設定 -> 開発者モードをON で表示されるようになります。

設定手順3. Discord Application(Bot)

https://discord.com/developers/applications

こちらのリンクからDiscordのChatBotとなるApplication情報を取得します。まだApplicationを作成していない場合はNew Applicationから作成します。DiscordのApplicationからBot tokenとApplication idの2点が必要になります。

BotのToken取得は Settings -> Bot -> Reset Tokenにて取得できるので、値をコピーします(③)。またApplication idはSettings -> General Information -> Application idの項目に表示されるので、同じように値をコピーします(④)。

またBotメニューの中でPublic botにするかどうかのメニューがあるのでこれをOffにし、Privileged Gateway IntentsについてはONにします。

Public botの設定
Privileged Gateway Intentsの設定

設定手順4. gpt-discord-botをGoogle App Engineに反映

$ git clone https://github.com/openai/gpt-discord-bot.git

https://github.com/openai/gpt-discord-bot/blob/main/.env.example

githubからgpt-discord-botをcloneして、.env.exampleを.envにrenameして①〜④として取得した値をそれぞれ書き込んでいきます。

OPENAI_API_KEY=①
DISCORD_BOT_TOKEN=③
DISCORD_CLIENT_ID=④

ALLOWED_SERVER_IDS=②
SERVER_TO_MODERATION_CHANNEL=1:1

.envコードを修正したものとして、あとはGoogle App Engineとして実行するために、Google Cloud ConsoleのCloud shellなどにログインしてGoogle App Engineのインスタンスを起動しながら下記を実行します。実行するとDiscord Serverに対して認証を通すURLが発行されるので、そのURLを押下して認証させるだけになります。

$ pip install -r requirements.txt
$ python -m src.main &

Discordの実行画面

Discordのテキスト入力のformにて /chat コマンドをまずは入力し、その後にGPT-3に聞きたいことを投げかけるだけです。

chatコマンド
GPTによる回答画面

参考URL


いいなと思ったら応援しよう!