チャット補完
ドキュメント:
Chat Completion API | OpenAI [Official]
概要
参考:
ChatGPT でチャットボットを作る/OpenAI 純正 API の利用 | IIJ Engineers Blog
使い方
API
openai.ChatCompletion.create
リクエストボディ
model
:使用するモデルmessages
:会話の内容temperature
:温度パラメータ (デフォルト:1.0
)top_p
:核サンプリングにおいて使用する上位確率質量の割合 (デフォルト:1.0
)n
:生成する選択肢の数 (デフォルト:1
)stream
:レスポンスをストリームとして送信する (デフォルト:false
)stop
:トークンの生成を停止するシーケンス (最大4
つまで)max_tokens
:最大トークン数 (デフォルト:inf
)presence_penalty
:存在のペナルティ/1回以上現れたトークンにペナルティを与える (範囲:-2.0
~2.0
/デフォルト:0
)frequecy_penalty
:頻度のペナルティ/過去に出現した頻度に応じてトークンにペナルティを与える (範囲:-2.0
~2.0
/デフォルト:0.0
)logit_bias
:トークンのロジットにバイアスを付与する/トークンが選択される可能性を増減する/-100
で指定したトークンを禁止、100
で排他的に選択する (範囲:-100
~100
/デフォルト:null
)user
:エンドユーザーの識別子/不正行為の監視及び検出に利用される/ユーザー名や電子メールをハッシュ化して用いることができる/一時的なユーザーに対してはセッション ID を使用できる
例:
import openai
result = openai.ChatCompletion.create(
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?"}
],
max_tokens=50
)
print(result)
Code language: Python (python)
ドキュメント:
Introduction – Chat Completion | OpenAI [Official]
Create Chat Completion | OpenAI [Official]
レスポンス
例:
{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "The 2020 World Series was played at a neutral site due to the COVID-19 pandemic. It was held at Globe Life Field in Arlington, Texas.",
"role": "assistant"
}
}
],
"created": 1678999999,
"id": "chatcmpl-12345ABCDEXXXXXXXXXXXXXXXXXXX",
"model": "gpt-3.5-turbo-XXXX",
"object": "chat.completion",
"usage": {
"completion_tokens": 33,
"prompt_tokens": 56,
"total_tokens": 89
}
}
Code language: JavaScript (javascript)
参考:
Response Format – Chat Completion | OpenAI [Official]
パラメータ
ドキュメント:
Parameter Details – API Reference | OpenAI [Official]
ストリーム (Stream)
ドキュメント:
stream – API | OpenAI [Official]
コード:
How to Stream Completions – openai-cookbook – GitHub
参考:
ChatGPT API からの返答をブラウザで頭から逐次表示する技術 | Saikou Kunisaki
音声チャットを作る
参考:
Whisper API / ChatGPT API / VOICEVOX を使って AI と会話する | umyomyomyon
Slack Bot を作る
参考:
OpenAI の Chat Completion API を使って、ChatGPT ライクに会話ができる Slack Bot を作る | Ryo Kawamata
トークン数を調整する
動画:
Handling Token Limits (Tinkering with Deep Learning & AI)
参考:
maximum token – OpenAI API Community Forum
Can I set max_tokens for chatgpt turbo? – OpenAI API Community Forum