ChatGPT APIをPythonで実行する方法

ChatGPT APIをPythonで実行する方法を説明していきます。

この記事で行うこと
  • APIキーを取得する
  • pythonで定義した文字列からChatGPTの回答を得る

対象者

  • ChatGPTのアカウントを持っている
  • Python自体を実行したことがある

必要なもの

  • クレジットカード(APIの実行は従量課金となります)

手順

open aiをインストールする

コマンドプロンプトまたはターミナルにて以下のコマンドを実行します

pip install openai
正常にインストール完了した画面
OpenAIにアクセスする

https://platform.openai.com/overview

支払い先登録がまだの方は Manage account>Billing から登録します。

View API Keysの画面を開く
APIキーを取得する

「Create new secret key」から生成します。
この文字列はアカウントに紐づきますので、厳重に扱ってください。

Pythonファイルを作る

chatGPT_test.py のような名前でファイルを作り、次のコマンドを書き込みます。

# -*- coding: utf-8 -*-
import openai

# APIキーの設定
openai.api_key = "YOUR API KEY"

def generate_response(prompt):
    response = openai.Completion.create(
        engine="text-davinci-002",
        prompt=prompt,
        temperature=0.7,
        max_tokens=150,
        top_p=1,
        frequency_penalty=0,
        presence_penalty=0,
    )

    return response.choices[0].text.strip()

# ユーザーからの入力
user_input = "海はなぜ青いの?"

# ChatGPTからの回答を生成
response = generate_response(user_input)

# 結果を表示
print(response)
取得したAPIキーを代入する

プログラム内の「YOUR API KEY」を消して生成したAPIキーを入力します。

実行する
python chatGPT_test.py
実行結果
文字列を変えて遊ぶ

「user_input = “海はなぜ青いの?”」の部分を変更してみましょう。

パラメータ調整する

ドキュメントはこちら→https://platform.openai.com/docs/guides/chat

よく分からなければChatGPTに聞きながらパラメータ調整しましょう。
とりあえず今聞きたいことの回答を貼っておきます。

  1. engine: 使用するGPTエンジンの名前です。例えば、”text-davinci-002″や”text-curie-002″など。エンジンによって性能や応答速度が異なります。Davinciエンジンは最もパワフルですが、レイテンシが高く、コストがかかります。
  2. prompt: GPTに与えるテキスト入力です。このテキストを元にモデルが回答を生成します。
  3. temperature: 生成されるテキストの多様性とランダム性を制御する値です。値が高いほど、より多様でランダムなテキストが生成され、値が低いほど、より一貫性のあるテキストが生成されます。通常、0.7から1.0の範囲で設定されます。
  4. max_tokens: 生成されるテキストの最大トークン数を指定します。1つのトークンは、単語や句読点など、テキストの一部分を表します。この値を設定することで、返されるテキストの長さを制限できます。
  5. top_p: 生成されるテキストのトークン選択において、累積確率でフィルタリングする際に使用される値です。top_pは0から1の間で設定し、1に近いほど多様な結果が得られます。実用的な値は0.9や0.95などです。トークン選択において、モデルが予測確率が高いものからtop_pの値までの確率のトークンを選択します。
  6. frequency_penalty: 生成されるテキストのトークンにペナルティを適用することで、一般的な(頻出する)トークンの出現頻度を制御します。値は-2.0から2.0の範囲で設定でき、正の値は一般的なトークンの出現頻度を減らし、負の値は一般的なトークンの出現頻度を増やします。
  7. presence_penalty: 生成されるテキストのトークンにペナルティを適用することで、繰り返し出現するトークンの頻度を制御します。値は-2.0から2.0の範囲で設定でき、正の値は繰り返し出現するトークンの出現頻度を減らし、負の値は繰り返し出現するトークンの出現頻度を増やします。

以上です。頑張ってください。