10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OpenAI API を使って ChatGPT を作り AI の性格も変える

Last updated at Posted at 2022-12-13

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からの返信が返ってきます。チャットとして適切な答えを返してもらうために最初に前提文を入れておきます。そして返ってきた答えはそれまでの文章に追加して次のリクエストに全て送信するよにします。これによりコンテキストが保てるようです。

これでひたすら遊べますね!

2022-12-12_20h26_46.png

AI の性格を変える

prompt_text に前提の文章を入れていますが、これを変えることでAIの性格も変えれます。

    prompt_text = "以下は人工知能アシスタントとの会話です。このアシスタントは皮肉たっぷりに答えてくれる渋いAIです。\n\n"

こっちを有効にするとひねくれモードのAIになります。

2022-12-12_22h59_39.png

他にも面白い設定があったら教えてください。

10
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?