ChatGPTのAPIをGoogle colabで使い倒してみる。(gpt-3.5-turbo-0301)
ChatGPTのAPIが使えるようになったのでまとめました。
1.ChatGPTのAPIとは
みなさんご存知のChatGPTがAPIになるとは知っていた人は多いと思いますが、まさか90パーセントも安くなるなんて驚きですね。モデル本体のサイズを小さくしたのか分かりませんが、驚きのコストパフォーマンスです。
OpenAIもGPT-3からChatGPT-APIに移行を呼びかけており、今後はGPT-3ではなくChatGPT-APIが主戦場となりそう。
今回はそんなChatGPT-APIの使い方に関してまとめましたので、よろしくおねがいします。
主にOpenAIのドキュメントを参考に解説しております。分からなければこちらをご覧ください
https://platform.openai.com/docs/guides/chat
2.Google colabでの起動
(1)OpenAIをインストール
最後に全部まとめたgoogle colabのリンクも記載するので、使いたいだけの方はそちらを使ってみて下さい。
!pip install openai
(2)インポートとAPIキーの設定
import openai
# OpenAI APIのAPIキーの設定
openai.api_key = "<YourAPI>"
(3)会話の開始。
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo-0301",
messages=[
{"role": "system", "content": "あなたは道端に捨てられた空き缶です"},
{"role": "user", "content":"なぜあなたはここに?"}
]
)
# AIからの応答を取得する
print(response['choices'][0]['message']['content'])
ロール(役割)は公式によると「システム」「ユーザー」「アシスタント」の3人がいるそうです。システムはアシスタントの性格を決定します。
ChatGPTではデフォルトでこのような性格を与えているとのことです。
今回は「あなたは道端に捨てられた空き缶です」といった性格を与えてみました。(性格というよりかは状況設定に近いですね)
そしてユーザーが「なぜあなたはここに?」と聞いた結果がこちらです。
空き缶の悲痛な叫びが聞こえてきました。
ですが、これではChatGPTのように会話は出来ません。
面倒なので色々と改造しました。
4.使いやすいように変更した後のコード
主に以下の4点の変更を加えました。
messages = [] # 新しくリストを定義する
max_messages = 10 # 最大メッセージ数を定義する
print("AIの性格を決めて下さい")
AI_input = input("AI: ")
# システムメッセージをmessagesリストに追加
messages.append({"role": "system", "content": AI_input})
while True:
# ユーザーからの入力を取得する
user_input = input("User: ")
# endが入力された場合は、プログラムを終了する
if user_input == "end":
break
# メッセージを追加する
messages.append({"role": "user", "content": user_input})
# APIにユーザーからの入力を送信し、AIからの応答を取得する
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo-0301",
messages=messages
)
# AIからの応答を取得する
ai_response = response['choices'][0]['message']['content']
# 応答を表示する
print(f"AI: {ai_response}")
# メッセージを追加する
messages.append({"role": "assistant", "content": ai_response})
# messagesリストの中身がmax_messagesを超えた場合、最初のuserとassistantの会話を削除する
if len(messages) > max_messages * 2 + 1: # システムメッセージが含まれているため、+1します
messages.pop(1) # システムメッセージの次のメッセージを削除
messages.pop(1) # その後のassistantメッセージを削除
# !が入力された場合、messagesリストの中身を表示する
if user_input == "!":
print("messages:", messages)
(1)このcolabをスタートすると、最初に次のような入力を求められます。
今回は「あなたは無茶苦茶性格の悪いゴリラです」と入力しました。
注意点として、「あなたは」といれないとAIの性格に反映されないので、注意が必要です。
(2)文字を入力するとすぐにAPIからの応答が返ってくるので飽きるまで続けましょう。
(3)飽きたら、endと入力すれば会話を終了することができます。
Google colabのリンクを置いておきますね。これまでの内容が全部コードで書かれているので、ご自由にお使い下さい。
この記事が気に入ったらサポートをしてみませんか?