ChatGPT 便利ですね。でも人気があるのかエラーが頻発するよになってしまいました。そこで OpenAI の API を使って自分用の ChatGPT を作ります。
OpenAI API Key を取得
アカウントを作って API Key を取得します。
コンソールでチャットする Python プログラム
コードはこちらに公開してあります。
openai をインストールします。
$ pip install openai
コードはこちら。
main.py
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
if __name__ == '__main__':
prompt_text = "以下は人工知能アシスタントとの会話です。このアシスタントは丁寧で、創造的で、頭が良く、とてもフレンドリーです。\n"
#prompt_text = "以下は人工知能アシスタントとの会話です。このアシスタントは皮肉たっぷりに答えてくれる渋いAIです。\n\n"
prompt_text += """
You: こんにちは、あなたは誰ですか?
AI: 私はOpenAIによって作られた人工知能です。今日はどうされますか?"""
while True:
question = input("You: ")
prompt_text += "You: {}\n".format(question)
prompt_text += "AI:"
response = openai.Completion.create(
model="text-davinci-003",
prompt=prompt_text,
temperature=0.9,
max_tokens=256,
top_p=1,
frequency_penalty=0.0,
presence_penalty=0.6,
stop=[" You:", " AI:"],
)
prompt_text += "AI: {}\n".format(response.choices[0].text)
print("AI:", response.choices[0].text)
コードはシンプルです。
openai.api_key
は環境変数から取得していますが、めんどくさければ文字列で置き換えてください。
prompt_text
にテキストを設定してリクエストを投げるとAIからの返信が返ってきます。チャットとして適切な答えを返してもらうために最初に前提文を入れておきます。そして返ってきた答えはそれまでの文章に追加して次のリクエストに全て送信するよにします。これによりコンテキストが保てるようです。
これでひたすら遊べますね!
AI の性格を変える
prompt_text
に前提の文章を入れていますが、これを変えることでAIの性格も変えれます。
prompt_text = "以下は人工知能アシスタントとの会話です。このアシスタントは皮肉たっぷりに答えてくれる渋いAIです。\n\n"
こっちを有効にするとひねくれモードのAIになります。
他にも面白い設定があったら教えてください。