見出し画像

Open AI の API を ChatGPT を利用して速習してみよう (Python 利用)!


はじめに

ところで皆さんは Open AI の API に興味はありますか?

今回は Open AI の API を利用した Python のコードを ChatGPT で利用して速習する Tips について解説してみます。

ChatGPT 自体 Open AI の API で動いている

ChatGPT 自体が Open AI の API で動いているので、ChatGPT をインタープリターとして利用すれば Open AI の API が動くのではないか?

という発想があります。

実際のところこれは動きます、ただ注意事項としては ChatGPT の出力はランダム性があるので環境によっては動かないケースがあるかもしれません。

利用方法

よく習うより慣れろとはよく言われますが、とりあえず API は Open AI 公式の examples を試してみましょう。

Python インタープリター化

下準備として ChatGPT を Python のインタープリターと設定してみましょう

入力例:

あなたはプロのPythonインタープリターと仮定してください

出力例:

了解しました。なにかPythonに関する質問があれば、お気軽にどうぞ。

content の日本語化

ChatGPT の API サンプルは基本英語なのですが、それだと分かりにくいのでサンプル実装例を翻訳してもらいましょう

入力例:

以下のコードのcontent部分を日本語に翻訳してください:

from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {
      "role": "user",
      "content": "Create a list of 8 questions for an interview with a science fiction author."
    }
  ],
  temperature=0.5,
  max_tokens=64,
  top_p=1
)

出力例:

以下は、提供されたコードの content 部分を日本語に翻訳したものです。

from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {
      "role": "user",
      "content": "SF作家のインタビューのための8つの質問のリストを作成してください。"
    }
  ],
  temperature=0.5,
  max_tokens=64,
  top_p=1
)

コードの内容を理解するために必要な場合、お知らせください。

ソースの実行

翻訳が終わったら上記のコードを実行して貰いましょう。

入力例:


コードの実行例:

出力例:

以下は、提供されたコードを実行した例です。

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {
            "role": "user",
            "content": "SF作家のインタビューのための8つの質問のリストを作成してください。"
        }
    ],
    temperature=0.5,
    max_tokens=64,
    top_p=1
)

print(response['choices'][0]['message']['content'])

出力:

1. あなたの最新の作品について教えてください。
2. あなたはどのようにして SF 作家になりましたか?
3. あなたが最も影響を受けた SF 作家は誰ですか?そして、その理由は何ですか?
4. あなたの作品における科学的な要素について教えてください。どのようにしてそれらを研究し、取り入れていますか?
5. SF 作家として、あなたの書き方の中で最も難しい部分は何ですか?
6. あなたの創造的なプロセスについて教えてください。ストーリーを構築する方法やキャラクターを開発する方法など。
7. 将来のプロジェクトについて何かお話しできますか?
8. SF ジャンルにおけるあなたの目標や夢は何ですか?

このように、日本語のリクエストに基づいて、OpenAI の GPT-3.5 モデルが自動的に質問リストを生成しました。

このようにコードの実行例と入力することで、実際の出力例が表示されます。

ソースを提示して翻訳と出力をしてみよう

上記の会話で ChatGPT に以下の文脈が設定されました:

  1. Python のインタープリターとして活動する

  2. content 部分は日本語に翻訳する

  3. 日本語に翻訳したコードを実行する

なので、後はコードを例示するだけで、content の翻訳とソースの実行結果の出力がなされます。

入力例:


from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
model="gpt-4",
messages=[
{
"role": "system",
"content": "You will be provided with a message, and your task is to respond using emojis only."
},
{
"role": "user",
"content": "How are you?"
}
],
temperature=0.8,
max_tokens=64,
top_p=1
)

出力例:


以下は、提供されたコードの content 部分を日本語に翻訳したものです。

from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
  model="gpt-4",
  messages=[
    {
      "role": "system",
      "content": "メッセージが提供され、絵文字のみを使用して応答するタスクが与えられます。"
    },
    {
      "role": "user",
      "content": "元気ですか?"
    }
  ],
  temperature=0.8,
  max_tokens=64,
  top_p=1
)

実行例は以下の通りです:

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4",
    messages=[
        {
            "role": "system",
            "content": "メッセージが提供され、絵文字のみを使用して応答するタスクが与えられます。"
        },
        {
            "role": "user",
            "content": "元気ですか?"
        }
    ],
    temperature=0.8,
    max_tokens=64,
    top_p=1
)

print(response['choices'][0]['message']['content'])

出力:

😀

このように、日本語のリクエストに基づいて、OpenAI の GPT-4 モデルが絵文字のみで自動的に応答しました。

以下は実際の会話の例

Open AI にコードの意味を聞こう

Open AI API には通常の ChatGPT を使う際には利用されない各種パラメーターがあります。例えば temperature, top_p などなど。

これらの意味を ChatGPT に聞いてみましょう。

入力:

あなたはOpen AIのAPIを利用したシニアのPythonのプログラマーと仮定してください

出力:

こんにちは!Open AIのAPIを利用したシニアのPythonプログラマーとして、何かお手伝いできることはありますか?

入力:

以下のコードの解説をしてください:

from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {
      "role": "user",
      "content": "Create a list of 8 questions for an interview with a science fiction author."
    }
  ],
  temperature=0.5,
  max_tokens=64,
  top_p=1
)

出力:


このコードは、OpenAI の API を使用して、科学技術小説の著者との面接用に 8 つの質問を作成する Python スクリプトです。以下はコードの詳細な解説です:

from openai import OpenAI  # OpenAIのPythonクライアントをインポートします
client = OpenAI()  # OpenAIのクライアントを初期化します

# OpenAIのAPIを使用して、質問を生成します
response = client.chat.completions.create(
  model="gpt-3.5-turbo",  # 使用するモデルの指定
  messages=[
    {
      "role": "user",
      "content": "Create a list of 8 questions for an interview with a science fiction author."  # 質問の内容
    }
  ],
  temperature=0.5,  # 文章生成時のランダム性を表すパラメータ。0に近いほど予測可能な回答になります。
  max_tokens=64,  # 応答に生成する最大トークン数。トークン数が増えると、より長い回答が得られる可能性があります。
  top_p=1  # トークンの確率分布で、上位何パーセントのトークンを選択するかを制御するパラメータ。1に設定すると、常に最も確率の高いトークンが選択されます。
)

このスクリプトは、OpenAI の API を使用して、指定された質問に基づいて科学技術小説の著者との面接用の質問を生成します。生成された質問は、変数 response に保存されます。

解説された各パラメータは以下のような役割を果たします:

- model: 使用するモデルを指定します。この例では、gpt-3.5-turbo を指定しています。
- messages: このフィールドでは、ユーザーとシステムとのやり取りを模倣します。この例では、ユーザーが質問をする役割を担うメッセージを1つ送信しています。
- temperature: 生成された文章の多様性を制御するパラメータです。0に近い値を設定すると、より予測可能な回答が得られます。
- max_tokens: 生成された応答の最大トークン数を指定します。トークン数が多いほど、より長い回答が生成される可能性があります。
- top_p: トークンの確率分布で、上位何パーセントのトークンを選択するかを制御するパラメータです。1に設定すると、常に最も確率の高いトークンが選択されます。

このコードを実行すると、指定された質問に基づいて、科学技術小説の著者との面接用の質問が生成され、変数 response に格納されます。

入力:

roleのuser, assistant, systemの意味を教えて下さい

出力:

`role` パラメータは、OpenAI APIの応答内での各メッセージの役割を指定します。以下は各役割の説明です:

- `user`: これはユーザーのメッセージを表します。つまり、ユーザーが質問や要求を行う部分です。
- `assistant`: これは、OpenAIが生成したメッセージを表します。ユーザーに対する返答や応答がこれに該当します。
- `system`: これは、システムメッセージを表します。たとえば、ユーザーに関する情報を提供する際に使用されることがあります。

このコード内の役割は `user` です。そのため、ユーザーの質問が模倣されています。

といった感じに非常に分かりやすい解説を提供してくれます。

会話例

まとめ

今回は ChatGPT を利用した OpenAI API の利用方法についての解説と、API に出てくるパラメーターの解説をしてみました。

Open AI API を速習したい場合ぜひ試すことをオススメします。

この記事が気に入ったらサポートをしてみませんか?