こんばんは。キモオタクと申します。
何番煎じだよって感じのネタですが、やっていきます。よろしく~
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から反応が返ってくるようになります。
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まではフリートライアルとしてタダで使えるので、お金を払わなくても結構遊べます。やった~
上記を参考に適当に動かす
はい。せっかくなのでNOeSISの求聞持空子の人格を注入して動かしてみましょう。
低品質ななりきりアカウントと会話している気分になりました。空子ちゃんに対する俺の「理解」が浅いのか、プロンプトが悪いのか、空子ちゃんの性格が意味不明すぎるのかわかりませんが、この方向性は諦めて普通にChatGPT on Discordとして運用しようと思います。
まとめ
手癖で作業を進めたせいで、モダンとは言い難いものばっかり使ってしまいました。discord.pyに至っては開発終了しているらしいですね。どひゃ~~
つまらない内容&ありふれた内容の記事を読んでいただきありがとうございました。ほなまた。