本日午前 4 時に OpenAI コミュニティによって送信された電子メールでは、公式 ChatGPT API のリリースが紹介されました。公式の紹介ドキュメントのアドレスは「OpenAI API」および「OpenAI API」です。
ChatGPT (GPT3.5) の正式な API モデル名は「gpt-3.5-turbo」および「gpt-3.5-turbo-0301」です。API 呼び出しの価格は、GPT text-davinci-003 モデルより 10 倍安価です。通話料は0.002米ドル/1000トークンで、4000~5000ワードで約0.1元に相当する。この単語数には、質問と返された結果の単語数が含まれます。
1 API呼び出しメソッド
1.1 呼び出しパラメータ
ChatGPT (GPT3.5) 公式 API の呼び出し方法は以下の通りで、基本的に GPT3 モデルの呼び出しと同じで、入力するパラメーターは主に 7 つあります。今晩、これら 2 つのモデルがRdFast スマート作成ロボット アプレットと RdChat デスクトップ プログラムに統合される予定です。いつでも体験できますので、ぜひご体験ください。
- モデル: モデル名、gpt-3.5-turbo または gpt-3.5-turbo-0301
- メッセージ: 記入する質問または内容。以下で強調表示されます。
- 温度: 結果のランダム性を制御します。0.0 は結果が固定されていることを意味し、ランダム性は 0.9 に設定できます。
- max_tokens: 返される単語の最大数 (質問と回答を含む)。通常、中国語の文字は 2 つのトークンを占めます。100 に設定されていると仮定すると、プロンプトの質問に 40 文字の漢字がある場合、返される結果には最大 10 文字の中国語が含まれます。ChatGPT API で許可されるトークンの最大数は 4096 です。つまり、max_tokens の最大設定は 4096 から問題のトークンの数を引いたものになります。
- top_p: 1 に設定します。
- 6frequency_penalty: 0 に設定します。
- present_penalty: 0 に設定します。
- ストリーム。
上記の入力パラメータはストリーム、つまり出力に制御フローを使用するかどうかを追加することに注意してください。
stream の値が False の場合、返される結果はセクション 1 の GPT3 インターフェイスと一致しており、すべてのテキスト結果が返され、response["choices"][0]["text"] を通じて読み取ることができます。ただし、ワード数が増えると復帰までの待ち時間が長くなり、制御フローを読み込むと4ワード/秒を参照できるようになります。
steam の値が True の場合、返される結果は Python ジェネレーターであり、結果を取得するには反復する必要があり、平均で 1 秒あたり約 4 ワード (33 秒で 134 ワード、39 秒で 157 ワード) になります。読み出しプログラムは以下の通りです。読み取り結果の終了フィールドが「<|im_end|>」であることがわかります。
1.2 メッセージ
メッセージ フィールドは、次のように役割とコンテンツの 2 つの部分で構成されます。
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who won the world series in 2020?"},
{"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
{"role": "user", "content": "Where was it played?"}
]
gpt-3.5-turbo モデルでは、ロール role には、システム system、アシスタント アシスタント、およびユーザー user の 3 つのタイプが含まれます。System ロールは、ChatGPT に質問に回答するロールを指示することと同等であり、コンテンツ内で特定のロールと質問の内容を指定する必要があります。gpt-3.5-turbo-0301 の主な違いは、問題の内容により多くの注意が払われ、役割の特定の部分には特別な注意が払われないことです。gpt-3.5-turbo-0301 モデルは 6 月 1 日まで有効で、gpt-3.5-turbo は引き続き更新されます。
アシスタントアシスタントとユーザーユーザーはロールを指定することに相当し、関心のある質問に内容を直接書き込むことができます。
2 参考手順
参考プログラムのサンプルは以下のとおりです。
# -*- coding: utf-8 -*-
"""
Created on Wed Dec 21 21:58:59 2022
@author: Administrator
"""
import openai
def openai_reply(content, apikey):
openai.api_key = apikey
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo-0301",#gpt-3.5-turbo-0301
messages=[
{"role": "user", "content": content}
],
temperature=0.5,
max_tokens=1000,
top_p=1,
frequency_penalty=0,
presence_penalty=0,
)
# print(response)
return response.choices[0].message.content
if __name__ == '__main__':
content = '你是谁?'
ans = openai_reply(content, '你的APIKEY')
print(ans)