キモオタクの部屋

終わりかけの大学生のブログ。不定期に更新します。

Chat-GPTとDiscord上で会話する【Discord.py】

こんばんは。キモオタクと申します。

何番煎じだよって感じのネタですが、やっていきます。よろしく~

Google Cloud + Ubuntu22.04 + Python + discord.py + openaiを使います。

GCP無料枠を用意する

今ってGCPって言わないんだね、Google Cloudなんだね…。(2023/03/10追記 普通にGCPって単語は使われていました。恥かいたわ)いつものe2-microを用意します。10年前はクラウドでこのスペックのサーバを借りると、毎月1000円ぐらいかかった気がします。いい時代になったもんだ

なんかミスってる気がするけどええか

pipをインストール

ubuntuくん、python3は標準で入っているのにpipが入っていなかったからインストール。尋常のコマンドを叩いても入らなかったためUbuntuでpip/pip3がインストールできないときの対処法 | Pythonを参考に導入。

ライブラリを導入

#discord.py
python3 -m pip install -U discord.py

#openai
python3 -m pip install openai

discord.py関係

とりあえず、いつものやつを動かしてみる。

# This example requires the 'message_content' intent.

import discord

intents = discord.Intents.default()
intents.message_content = True

client = discord.Client(intents=intents)

@client.event
async def on_ready():
    print(f'We have logged in as {client.user}')

@client.event
async def on_message(message):
    if message.author == client.user:
        return

    if message.content.startswith('$hello'):
        await message.channel.send('Hello!')

client.run('your token here')

このサンプルコードはdiscord developers portalの設定を弄らないと動かなかったりするらしいです。

Botタブの中
まあ普通に動かすと、Botから反応が返ってくるようになります。

openai

【最新速報】ChatGPT APIの「概要と使い方」(Pythonコード付き)からコピペしています。

import openai
openai.api_key = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

res = openai.ChatCompletion.create(
   model="gpt-3.5-turbo",
   messages=[
       {
           "role": "system",
           "content": "日本語で返答してください。"
       },
       {
           "role": "user",
           "content": "What is AI?"
       },
   ],
)
print(res)
print(res["choices"][0]["message"]["content"])

こんな短いコードで動くの、便利~~~~
今さらですが、chat gpt apiは1000tokenで0.2円です。tokenって何?出力1文字で1tokenってこと?と最初は思いましたがそうではなく、ユーザから受け取ったテキストであったり出力文であったりを合算したポイントっぽいです。150字ぐらいのプロンプトで大体100~200tokenを消費していました。そんで$18.00まではフリートライアルとしてタダで使えるので、お金を払わなくても結構遊べます。やった~

上記を参考に適当に動かす

github.com

はい。せっかくなのでNOeSISの求聞持空子の人格を注入して動かしてみましょう。

低品質ななりきりアカウントと会話している気分になりました。空子ちゃんに対する俺の「理解」が浅いのか、プロンプトが悪いのか、空子ちゃんの性格が意味不明すぎるのかわかりませんが、この方向性は諦めて普通にChatGPT on Discordとして運用しようと思います。

人格を剥がされたAI

まとめ

手癖で作業を進めたせいで、モダンとは言い難いものばっかり使ってしまいました。discord.pyに至っては開発終了しているらしいですね。どひゃ~~
つまらない内容&ありふれた内容の記事を読んでいただきありがとうございました。ほなまた。