見出し画像

DiscordにChatGPT APIによるChatBotを導入する

はじめに

@yutakikuchi_ です。

以前GPT-3によるChatAIをDiscordに導入する話を書きましたが、2023.03月の初旬にOpenAIのAPIのupdateがあり、ChatGPTのAPIも利用できるようになりました。(GPT-3のAPIとChatGPTのAPIは別物になります)

GPT-3系のAPIの料金に比べてChatGPTのAPIの方が10分の1の価格になるようで、Discordに設定するAPIも新しくそちらに切り替える話をここでは書きます。下記参考リンクの gpt-3.5-turbo というモデルがChatGPTのAPIのモデルに該当し、価格も$0.002 / 1K tokens となっているため、これまで文章生成として利用されていたDavinciよりも圧倒的に価格が安くなっていることが分かるかと思います。

参考 : https://openai.com/pricing#chat

尚、ChatGPTのAPIをDiscordに組み込むための環境としては上のリンクの内容とほぼ同じで、Discord -> Google Compute Engine -> ChatGPT API という形になります。(間に挟む機構はGoogle App EngineでもOK)

Discordに対してChatGPTのAPIを組み込む

またGoogle Compute Engineに設定するDiscordと連携するアプリのソースコードは次のものを利用します。gpt-discord-botはdiscordと接続をしてChatGPTのAPIと対話するためのインタフェースが入っていますが、2023.03.07時点では最新のChatGPT APIに対応していないので、書き換えが必要になります。本Noteではその書き換え箇所だけを具体的に説明します。
https://github.com/openai/gpt-discord-bot

gpt-discord-botの書き換え

上のリンクで示したgpt-discord-botのcompletion.py#L51-L59を具体的に修正します。修正前はDavinciをcallするように設定されているので、L51-L59を下記のように書き換えます。またopenai.ChatCompletion.createが使えるのがopenaiのpackageをupdateする必要があるので、pip install --upgrade openai にて0.27.* 系にします。GPT-3とChatGPTでAPIのRequest/Response仕様が若干異なるのでそれに合わせた改修をしたで行っています。

response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            messages=[{"role": "user", "content": messages[-1].text}],
            temperature=1.0,
            max_tokens=768,
            stop=["<|endoftext|>"],
        )
reply = response.choices[0].message.content

package : https://pypi.org/project/openai/

具体的にどれぐらいChatとして変わるか?

具体例を見てみます。変更前後でAPIとmax_tokensのparameterが異なるので、全てがAPIを変えた事による結果の違いでは無いのですが、ChatGPTのAPIにする前は比較的簡素なメッセージで返答が返ってくることに対して、ChatGPTは充実したメッセージ内容で返答が来ます。料金的にもChatGPTのAPIの方が安いので、切り替える方が圧倒的に良いと思います。

GPT-3 API(text-davinci-003)によるBotの返答
ChatGPT API(gpt-3.5-turbo)によるBotの返答

健康や美容に関して質問し、みんなで情報共有し合うDiscord(トレ活 DoのDiscordサーバー)

私が運営をしている健康意識と社会貢献意識の定着を目指すDoという対面型の健康サービスがありまして、そのサーバーの中でChatbotに対して健康や美容に関する質問をして情報を共有し合うという取り組みをしています。上のDiscordのサンプルが見たい場合は、「教えてaiくん」というDiscordChannelがありますので、下のリンクから入っていただき、そちらで質問してみてください。

その他

Doの説明資料はこちらにあります。週2回程度で対面型の健康改善プログラムを実施、また月1の頻度でオンラインヨガもやっていますので、気になる方は下記のPeatixのイベント一覧よりお申し込みください。


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