OpenAI 対話フォーマット(Chat Completions)¶
公式ドキュメント
📝 概要¶
一連の対話メッセージのリストが与えられると、モデルは応答を返します。関連するガイドについては、OpenAI公式サイトを参照してください:Chat Completions
💡 リクエスト例¶
基本的なテキスト対話 ✅¶
curl https://你的newapi服务器地址/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $NEWAPI_API_KEY" \
-d '{
"model": "gpt-4.1",
"messages": [
{
"role": "developer",
"content": "你是一个有帮助的助手。"
},
{
"role": "user",
"content": "你好!"
}
]
}'
レスポンス例:
{
"id": "chatcmpl-B9MBs8CjcvOU2jLn4n570S5qMJKcT",
"object": "chat.completion",
"created": 1741569952,
"model": "gpt-4.1-2025-04-14",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "你好!我能为你提供什么帮助?",
"refusal": null,
"annotations": []
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 19,
"completion_tokens": 10,
"total_tokens": 29,
"prompt_tokens_details": {
"cached_tokens": 0,
"audio_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 0,
"audio_tokens": 0,
"accepted_prediction_tokens": 0,
"rejected_prediction_tokens": 0
}
},
"service_tier": "default"
}
画像分析対話 ✅¶
curl https://你的newapi服务器地址/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $NEWAPI_API_KEY" \
-d '{
"model": "gpt-4.1",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "这张图片里有什么?"
},
{
"type": "image_url",
"image_url": {
"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
}
}
]
}
],
"max_tokens": 300
}'
レスポンス例:
{
"id": "chatcmpl-B9MHDbslfkBeAs8l4bebGdFOJ6PeG",
"object": "chat.completion",
"created": 1741570283,
"model": "gpt-4.1-2025-04-14",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "图片展示了一条穿过茂密绿色草地或草甸的木制栈道。天空湛蓝,点缀着几朵散落的云彩,给整个场景营造出宁静祥和的氛围。背景中可以看到树木和灌木丛。",
"refusal": null,
"annotations": []
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 1117,
"completion_tokens": 46,
"total_tokens": 1163,
"prompt_tokens_details": {
"cached_tokens": 0,
"audio_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 0,
"audio_tokens": 0,
"accepted_prediction_tokens": 0,
"rejected_prediction_tokens": 0
}
},
"service_tier": "default",
"system_fingerprint": "fp_fc9f1d7035"
}
ストリーミングレスポンス ✅¶
curl https://你的newapi服务器地址/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $NEWAPI_API_KEY" \
-d '{
"model": "gpt-4.1",
"messages": [
{
"role": "developer",
"content": "你是一个有帮助的助手。"
},
{
"role": "user",
"content": "你好!"
}
],
"stream": true
}'
ストリーミングレスポンス例:
{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-4o-mini", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-4o-mini", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{"content":"你好"},"logprobs":null,"finish_reason":null}]}
// ... 更多数据块 ...
{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-4o-mini", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
関数呼び出し ✅¶
curl https://你的newapi服务器地址/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $NEWAPI_API_KEY" \
-d '{
"model": "gpt-4.1",
"messages": [
{
"role": "user",
"content": "波士顿今天的天气怎么样?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "获取指定位置的当前天气",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "城市和州,例如 San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
レスポンス例:
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1699896916,
"model": "gpt-4o-mini",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": null,
"tool_calls": [
{
"id": "call_abc123",
"type": "function",
"function": {
"name": "get_current_weather",
"arguments": "{\n\"location\": \"Boston, MA\"\n}"
}
}
]
},
"logprobs": null,
"finish_reason": "tool_calls"
}
],
"usage": {
"prompt_tokens": 82,
"completion_tokens": 17,
"total_tokens": 99,
"completion_tokens_details": {
"reasoning_tokens": 0,
"accepted_prediction_tokens": 0,
"rejected_prediction_tokens": 0
}
}
}
Logprobs リクエスト ✅¶
curl https://你的newapi服务器地址/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $NEWAPI_API_KEY" \
-d '{
"model": "gpt-4.1",
"messages": [
{
"role": "user",
"content": "你好!"
}
],
"logprobs": true,
"top_logprobs": 2
}'
レスポンス例:
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1702685778,
"model": "gpt-4o-mini",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "你好!我能为你提供什么帮助?"
},
"logprobs": {
"content": [
{
"token": "Hello",
"logprob": -0.31725305,
"bytes": [72, 101, 108, 108, 111],
"top_logprobs": [
{
"token": "Hello",
"logprob": -0.31725305,
"bytes": [72, 101, 108, 108, 111]
},
{
"token": "Hi",
"logprob": -1.3190403,
"bytes": [72, 105]
}
]
},
{
"token": "!",
"logprob": -0.02380986,
"bytes": [
33
],
"top_logprobs": [
{
"token": "!",
"logprob": -0.02380986,
"bytes": [33]
},
{
"token": " there",
"logprob": -3.787621,
"bytes": [32, 116, 104, 101, 114, 101]
}
]
},
{
"token": " How",
"logprob": -0.000054669687,
"bytes": [32, 72, 111, 119],
"top_logprobs": [
{
"token": " How",
"logprob": -0.000054669687,
"bytes": [32, 72, 111, 119]
},
{
"token": "<|end|>",
"logprob": -10.953937,
"bytes": null
}
]
},
{
"token": " can",
"logprob": -0.015801601,
"bytes": [32, 99, 97, 110],
"top_logprobs": [
{
"token": " can",
"logprob": -0.015801601,
"bytes": [32, 99, 97, 110]
},
{
"token": " may",
"logprob": -4.161023,
"bytes": [32, 109, 97, 121]
}
]
},
{
"token": " I",
"logprob": -3.7697225e-6,
"bytes": [
32,
73
],
"top_logprobs": [
{
"token": " I",
"logprob": -3.7697225e-6,
"bytes": [32, 73]
},
{
"token": " assist",
"logprob": -13.596657,
"bytes": [32, 97, 115, 115, 105, 115, 116]
}
]
},
{
"token": " assist",
"logprob": -0.04571125,
"bytes": [32, 97, 115, 115, 105, 115, 116],
"top_logprobs": [
{
"token": " assist",
"logprob": -0.04571125,
"bytes": [32, 97, 115, 115, 105, 115, 116]
},
{
"token": " help",
"logprob": -3.1089056,
"bytes": [32, 104, 101, 108, 112]
}
]
},
{
"token": " you",
"logprob": -5.4385737e-6,
"bytes": [32, 121, 111, 117],
"top_logprobs": [
{
"token": " you",
"logprob": -5.4385737e-6,
"bytes": [32, 121, 111, 117]
},
{
"token": " today",
"logprob": -12.807695,
"bytes": [32, 116, 111, 100, 97, 121]
}
]
},
{
"token": " today",
"logprob": -0.0040071653,
"bytes": [32, 116, 111, 100, 97, 121],
"top_logprobs": [
{
"token": " today",
"logprob": -0.0040071653,
"bytes": [32, 116, 111, 100, 97, 121]
},
{
"token": "?",
"logprob": -5.5247097,
"bytes": [63]
}
]
},
{
"token": "?",
"logprob": -0.0008108172,
"bytes": [63],
"top_logprobs": [
{
"token": "?",
"logprob": -0.0008108172,
"bytes": [63]
},
{
"token": "?\n",
"logprob": -7.184561,
"bytes": [63, 10]
}
]
}
]
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 9,
"total_tokens": 18,
"completion_tokens_details": {
"reasoning_tokens": 0,
"accepted_prediction_tokens": 0,
"rejected_prediction_tokens": 0
}
},
"system_fingerprint": null
}
📮 リクエスト¶
エンドポイント¶
与えられたチャット対話に対するモデル応答を作成します。詳細については、テキスト生成、ビジョン、およびオーディオのガイドを参照してください。
認証方法¶
リクエストヘッダーに以下を含めてAPIキー認証を行います:
ここで $NEWAPI_API_KEY
はあなたの API キーです。APIキーは、OpenAIプラットフォームのAPIキーページで見つけるか、生成できます。
リクエストボディパラメータ¶
messages
¶
- タイプ:配列
- 必須:はい
これまでの対話を含むメッセージのリスト。使用するモデルに応じて、テキスト、画像、音声など、さまざまなメッセージタイプ(形式)がサポートされています。
メッセージタイプ | 説明 |
---|---|
Developer message | 開発者が提供する指示。モデルはユーザーが送信するメッセージに関係なく、これらの指示に従う必要があります。o1モデル以降では、開発者メッセージが以前のシステムメッセージに取って代わります。 |
System message | 開発者が提供する指示。モデルはユーザーが送信するメッセージに関係なく、これらの指示に従う必要があります。o1モデル以降では、代わりに開発者メッセージを使用してください。 |
User message | エンドユーザーから送信されるメッセージ。プロンプトまたは追加のコンテキスト情報を含みます。 |
Assistant message | ユーザーメッセージに応答してモデルが送信するメッセージ。 |
Tool message | ツールメッセージの内容。 |
Function message | 非推奨。 |
Developer message 属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
role |
文字列 | はい | メッセージ作成者のロール。ここでは developer 。 |
content |
文字列または配列 | はい | 開発者メッセージの内容。テキストコンテンツ(文字列)またはコンテンツパーツの配列にすることができます。 |
name |
文字列 | いいえ | 参加者のオプションの名前。モデルが同じロールの参加者を区別するために情報を提供します。 |
System message 属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
role |
文字列 | はい | メッセージ作成者のロール。ここでは system 。 |
content |
文字列または配列 | はい | システムメッセージの内容。テキストコンテンツ(文字列)またはコンテンツパーツの配列にすることができます。 |
name |
文字列 | いいえ | 参加者のオプションの名前。モデルが同じロールの参加者を区別するために情報を提供します。 |
User message 属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
role |
文字列 | はい | メッセージ作成者のロール。ここでは user 。 |
content |
文字列または配列 | はい | ユーザーメッセージの内容。テキストコンテンツ(文字列)またはコンテンツパーツの配列にすることができます。 |
name |
文字列 | いいえ | 参加者のオプションの名前。モデルが同じロールの参加者を区別するために情報を提供します。 |
コンテンツパーツタイプ:
コンテンツパーツタイプ | 説明 | 使用可能 |
---|---|---|
テキストコンテンツ部分 | テキスト入力。 | すべてのメッセージタイプ |
画像コンテンツ部分 | 画像入力。 | ユーザーメッセージ |
音声コンテンツ部分 | 音声入力。 | ユーザーメッセージ |
ファイルコンテンツ部分 | ファイル入力。テキスト生成に使用されます。 | ユーザーメッセージ |
拒否コンテンツ部分 | モデルによって生成された拒否メッセージ。 | アシスタントメッセージ |
テキストコンテンツ部分属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
text |
文字列 | はい | テキストコンテンツ。 |
type |
文字列 | はい | コンテンツパーツのタイプ。 |
画像コンテンツ部分属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
image_url |
オブジェクト | はい | 画像URLまたはbase64エンコードされた画像データを含むオブジェクト。 |
type |
文字列 | はい | コンテンツパーツのタイプ。 |
画像URLオブジェクト属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
url |
文字列 | はい | 画像のURLまたはbase64エンコードされた画像データ。 |
detail |
文字列 | いいえ | 画像の詳細レベルを指定します。デフォルトは auto です。 |
音声コンテンツ部分属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
input_audio |
オブジェクト | はい | 音声データを含むオブジェクト。 |
type |
文字列 | はい | コンテンツパーツのタイプ。常に input_audio です。 |
音声入力オブジェクト属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
data |
文字列 | はい | base64エンコードされた音声データ。 |
format |
文字列 | はい | エンコードされた音声データのフォーマット。現在 "wav" および "mp3" がサポートされています。 |
ファイルコンテンツ部分属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
file |
オブジェクト | はい | ファイルデータを含むオブジェクト。 |
type |
文字列 | はい | コンテンツパーツのタイプ。常に file です。 |
ファイルオブジェクト属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
file_data |
文字列 | いいえ | base64エンコードされたファイルデータ。ファイルを文字列としてモデルに渡すために使用されます。 |
file_id |
文字列 | いいえ | アップロードされたファイルのID。入力として使用されます。 |
filename |
文字列 | いいえ | ファイル名。ファイルを文字列としてモデルに渡すために使用されます。 |
Assistant message 属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
role |
文字列 | はい | メッセージ作成者のロール。ここでは assistant 。 |
content |
文字列または配列 | いいえ | アシスタントメッセージの内容。`tool_calls` または `function_call` が指定されていない限り必須です。 |
name |
文字列 | いいえ | 参加者のオプションの名前。モデルが同じロールの参加者を区別するために情報を提供します。 |
audio |
オブジェクトまたはnull | いいえ | モデルの以前の音声応答に関するデータ。 |
function_call |
オブジェクトまたはnull | いいえ | 非推奨。`tool_calls` に置き換えられました。モデルによって生成された、呼び出すべき関数の名前と引数。 |
tool_calls |
配列 | いいえ | モデルによって生成された、関数呼び出しなどのツール呼び出し。 |
refusal |
文字列またはnull | いいえ | アシスタントの拒否メッセージ。 |
Tool message 属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
role |
文字列 | はい | メッセージ作成者のロール。ここでは tool 。 |
content |
文字列または配列 | はい | ツールメッセージの内容。 |
tool_call_id |
文字列 | はい | このメッセージが応答するツール呼び出し。 |
Function message 属性:(非推奨)
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
role |
文字列 | はい | メッセージ作成者のロール。ここでは function 。 |
content |
文字列またはnull | はい | 関数メッセージの内容。 |
name |
文字列 | はい | 呼び出す関数の名前。 |
model
¶
- タイプ:文字列
- 必須:はい
使用するモデル ID。Chat APIでどのモデルが利用可能かについては、モデルエンドポイント互換性表を参照してください。
store
¶
- タイプ:ブール値または null
- 必須:いいえ
- デフォルト値:false
このチャット補完リクエストの出力を、当社のモデル蒸留または評価製品のために保存するかどうか。
reasoning_effort
¶
- タイプ:文字列または null
- 必須:いいえ
- デフォルト値:medium
- oシリーズのモデルにのみ適用
推論モデルの推論作業を制約します。現在サポートされている値は low
、medium
、および high
です。推論作業を減らすと、応答が速くなり、応答で推論に使用されるトークン数が減少する可能性があります。
metadata
¶
- タイプ:map
- 必須:いいえ
オブジェクトに添付できる16個のキーと値のペアのコレクション。これは、オブジェクトに関する追加情報を構造化された形式で保存するのに役立ち、APIまたはダッシュボードを通じてオブジェクトをクエリできます。
キーは最大長64文字の文字列です。値は最大長512文字の文字列です。
modalities
¶
- タイプ:配列または null
- 必須:いいえ
このリクエストに対してモデルに生成させたい出力タイプ。ほとんどのモデルはテキストを生成でき、これがデフォルトです: ["text"]
モデルは音声を生成するためにも使用できます。このモデルにテキストと音声の両方の応答を生成するようにリクエストするには、以下を使用できます: ["text", "audio"]
prediction
¶
- タイプ:オブジェクト
- 必須:いいえ
予測出力の構成。モデル応答の大部分が事前にわかっている場合に、応答時間を大幅に改善できます。これは、ファイルにわずかな変更を加える場合に最も一般的です。
可能なタイプ:
タイプ | 説明 |
---|---|
静的コンテンツ | 静的な予測出力コンテンツ。例えば、わずかな変更を加えて再生成しているテキストファイルの内容など。 |
静的コンテンツ属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
content |
文字列または配列 | はい | 生成モデル応答と一致する必要があるコンテンツ。生成されたトークンがこのコンテンツと一致する場合、モデル応答全体がより速く返される可能性があります。 |
type |
文字列 | はい | 提供する予測コンテンツのタイプ。現在のタイプは常に content です。 |
コンテンツの可能なタイプ:
-
テキストコンテンツ(文字列) - 予測出力に使用するコンテンツ。これは通常、わずかな変更を加えている、再生成中のファイルのテキストです。
-
コンテンツパーツ配列(配列) - 定義されたタイプを持つコンテンツパーツの配列。サポートされるオプションは、応答の生成に使用されるモデルによって異なります。テキスト入力を含めることができます。
コンテンツパーツ配列属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
text |
文字列 | はい | テキストコンテンツ。 |
type |
文字列 | はい | コンテンツパーツのタイプ。 |
audio
¶
- タイプ:オブジェクトまたは null
- 必須:いいえ
音声出力のパラメータ。modalities: ["audio"]
を使用して音声出力がリクエストされた場合に必要です。
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
format |
文字列 | はい | 出力音声フォーマットを指定します。wav、mp3、flac、opus、または pcm16 のいずれかである必要があります。 |
voice |
文字列 | はい | モデルが応答に使用する音声。サポートされている音声には、alloy、ash、ballad、coral、echo、fable、nova、onyx、sage、および shimmer が含まれます。 |
temperature
¶
- タイプ:数値または null
- 必須:いいえ
- デフォルト値:1
使用するサンプリング温度。0から2の間。高い値(例:0.8)は出力をよりランダムにし、低い値(例:0.2)は出力をより集中的で決定論的にします。通常、この値または top_p
のいずれかを変更することをお勧めしますが、両方を同時に変更しないでください。
top_p
¶
- タイプ:数値または null
- 必須:いいえ
- デフォルト値:1
核サンプリングと呼ばれる、サンプリング温度の代替方法。モデルは、top_pの確率質量を持つトークンの結果を考慮します。したがって、0.1は、上位10%の確率質量を含むトークンのみが考慮されることを意味します。
通常、この値または temperature
のいずれかを変更することをお勧めしますが、両方を同時に変更しないでください。
n
¶
- タイプ:整数または null
- 必須:いいえ
- デフォルト値:1
入力メッセージごとに生成するチャット補完の選択肢の数。生成されたすべての選択肢のトークン数に基づいて課金されることに注意してください。n
を1に保つことでコストを最小限に抑えることができます。
stop
¶
- タイプ:文字列/配列/null
- 必須:いいえ
- デフォルト値:null
- 最新の推論モデルおよび .o3、o4-mini ではサポートされていません
APIがそれ以上のトークンの生成を停止する最大4つのシーケンス。返されるテキストには停止シーケンスは含まれません。
max_tokens
¶
- タイプ:整数または null
- 必須:いいえ
チャット補完で生成できる最大トークン数。この値は、APIを通じて生成されるテキストのコストを制御するために使用できます。
この値は現在非推奨であり、代わりに max_completion_tokens
が使用され、o1
シリーズモデルとは互換性がありません。
max_completion_tokens
¶
- タイプ:整数または null
- 必須:いいえ
可視出力トークンと推論トークンを含む、補完で生成できるトークン数の上限。
presence_penalty
¶
- タイプ:数値または null
- 必須:いいえ
- デフォルト値:0
-2.0から2.0までの数値。正の値は、新しいトークンがこれまでにテキストに現れた回数に基づいてペナルティを課し、モデルが新しいトピックについて議論する可能性を高めます。
frequency_penalty
¶
- タイプ:数値または null
- 必須:いいえ
- デフォルト値:0
-2.0から2.0までの数値。正の値は、新しいトークンがこれまでにテキストに存在する頻度に基づいてペナルティを課し、モデルが同じ行を逐語的に繰り返す可能性を減らします。
logit_bias
¶
- タイプ:map
- 必須:いいえ
- デフォルト値:null
指定されたトークンが補完に表示される可能性を変更します。
トークン(トークナイザーのトークンIDで指定)を、-100から100までの関連バイアス値にマッピングするJSONオブジェクトを受け入れます。数学的には、バイアスはサンプリング前にモデルが生成するロジットに追加されます。正確な効果はモデルによって異なりますが、-1から1の間の値は選択の可能性を減らすか増やすはずです。-100や100のような値は、関連するトークンが禁止されるか、排他的に選択されるようにするはずです。
logprobs
¶
- タイプ:ブール値または null
- 必須:いいえ
- デフォルト値:false
出力トークンの対数確率を返すかどうか。trueの場合、message.content
内の各出力トークンの対数確率が返されます。
user
¶
- タイプ:文字列
- 必須:いいえ
エンドユーザーを表す一意の識別子。OpenAIが乱用を監視および検出するのに役立ちます。詳細はこちら。
service_tier
¶
- タイプ:文字列または null
- 必須:いいえ
- デフォルト値:auto
リクエストの処理に使用されるレイテンシ層を指定します。このパラメータは、スケール層サービスを購読している顧客に関連します:
- 'auto' に設定され、プロジェクトでスケール層が有効になっている場合、システムはスケール層のクレジットを使い果たすまで使用します
- 'auto' に設定され、プロジェクトでスケール層が有効になっていない場合、リクエストはデフォルトのサービス層で処理され、稼働時間SLAが低く、レイテンシ保証はありません
- 'default' に設定されている場合、リクエストはデフォルトのサービス層で処理され、稼働時間SLAが低く、レイテンシ保証はありません
- 'flex' に設定されている場合、リクエストはFlex Processingサービス層で処理されます。詳細についてはドキュメントを参照してください。
- 設定されていない場合、デフォルトの動作は 'auto' です
- このパラメータが設定されている場合、レスポンスボディには使用された service_tier が含まれます
stream_options
¶
- タイプ:オブジェクトまたは null
- 必須:いいえ
- デフォルト値:null
ストリーミング応答のオプション。stream: true
が設定されている場合にのみ使用されます。
可能な属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
include_usage |
ブール値 | いいえ | 設定されている場合、data: [DONE] メッセージの前に、追加のチャンクがストリーミングされます。このチャンクの usage フィールドには、リクエスト全体のトークン使用統計が表示され、choices フィールドは常に空の配列です。他のすべてのチャンクにも usage フィールドが含まれますが、値は null です。注:ストリームが中断された場合、リクエストの合計トークン使用量を含む最終的な使用チャンクを受け取らない可能性があります。 |
response_format
¶
- タイプ:オブジェクト
- 必須:いいえ
モデルが出力しなければならない形式を指定します。
{ "type": "json_schema", "json_schema": {...} }
に設定すると、構造化出力が有効になり、モデルが提供された JSON スキーマに一致することが保証されます。{ "type": "json_object" }
に設定すると、JSON モードが有効になり、モデルが生成するメッセージが有効な JSON であることが保証されます。
重要:JSON モードを使用する場合、システムまたはユーザーメッセージを通じて、モデルに JSON を生成するように指示する必要もあります。そうしないと、モデルがトークン制限に達するまで無限の空白を生成する可能性があります。
可能なタイプ:
タイプ | 説明 |
---|---|
text | デフォルトの応答形式。テキスト応答の生成に使用されます。 |
json_schema | JSON Schema 応答形式。構造化された JSON 応答の生成に使用されます。構造化出力の詳細についてはこちらをご覧ください。 |
json_object | JSON オブジェクト応答形式。JSON 応答を生成するための古い方法です。サポートされているモデルでは、json_schema が推奨されます。 |
text 属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
type |
文字列 | はい | 定義されている応答形式のタイプ。常に text です。 |
json_schema 属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
json_schema |
オブジェクト | はい | JSON Schema を含む構造化出力構成オプション。 |
type |
文字列 | はい | 定義されている応答形式のタイプ。常に json_schema です。 |
json_schema.json_schema 属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
name |
文字列 | はい | 応答形式の名前。a-z、A-Z、0-9、またはアンダースコアとハイフンを含む必要があり、最大長は64です。 |
description |
文字列 | いいえ | 応答形式の目的の説明。モデルはこれを使用して、その形式で応答する方法を決定します。 |
schema |
オブジェクト | いいえ | JSON Schema オブジェクトとして記述された応答形式のスキーマ。 |
strict |
ブール値または null | いいえ | 出力生成時に厳密なスキーマ準拠を有効にするかどうか。trueに設定されている場合、モデルは常に schema フィールドで定義された正確なスキーマに従います。strict が true の場合、JSON Schema のサブセットのみがサポートされます。 |
json_object 属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
type |
文字列 | はい | 定義されている応答形式のタイプ。常に json_object です。 |
seed
¶
- タイプ:整数または null
- 必須:いいえ ベータ機能。指定された場合、当社のシステムは決定論的なサンプリングを行うために最善を尽くし、同じシードとパラメータを持つ繰り返しのリクエストは同じ結果を返すはずです。決定論は保証されません。バックエンドの変更を監視するために、応答パラメータの system_fingerprint を参照する必要があります。
tools
¶
- タイプ:配列
- 必須:いいえ
モデルが呼び出す可能性のあるツールのリスト。現在、関数のみがツールとしてサポートされています。このパラメータを使用して、モデルがJSON入力を生成する可能性のある関数のリストを提供します。最大128個の関数がサポートされています。
属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
function |
オブジェクト | はい | 呼び出す関数の情報 |
type |
文字列 | はい | ツールのタイプ。現在、function のみがサポートされています。 |
function 属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
name |
文字列 | はい | 呼び出す関数の名前。a-z、A-Z、0-9、またはアンダースコアとハイフンを含む必要があり、最大長は64です。 |
description |
文字列 | いいえ | 関数の機能の説明。モデルはこれを使用して、いつ、どのように関数を呼び出すかを決定します。 |
parameters |
オブジェクト | いいえ | 関数が受け入れる引数。JSON Schema オブジェクトとして記述されます。例についてはガイドを、フォーマットドキュメントについてはJSON Schemaリファレンスを参照してください。parameters を省略すると、空の引数リストを持つ関数が定義されます。 |
strict |
ブール値または null | いいえ | デフォルト値:false。関数呼び出しの生成時に厳密なスキーマ準拠を有効にするかどうか。trueに設定されている場合、モデルは parameters フィールドで定義された正確なスキーマに従います。strict が true の場合、JSON Schema のサブセットのみがサポートされます。詳細については、関数呼び出しガイドの構造化出力セクションを参照してください。 |
functions
¶
- タイプ:配列
- 必須:いいえ
- 注意:非推奨。
tools
が推奨されます。
モデルがJSON入力を生成する可能性のある関数のリスト。
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
name |
文字列 | はい | 呼び出す関数の名前。a-z、A-Z、0-9、またはアンダースコアとハイフンを含む必要があり、最大長は64です。 |
description |
文字列 | いいえ | 関数の機能の説明。モデルはこれを使用して、いつ、どのように関数を呼び出すかを決定します。 |
parameters |
オブジェクト | いいえ | 関数が受け入れる引数。JSON Schema オブジェクトとして記述されます。parameters を省略すると、空の引数リストを持つ関数が定義されます。 |
tool_choice
¶
- タイプ:文字列またはオブジェクト
- 必須:いいえ
モデルがどのツールを呼び出すか(もしあれば)を制御します:
- none
:モデルはツールを呼び出さず、メッセージを生成します
- auto
:モデルはメッセージの生成または1つ以上のツールの呼び出しを選択できます
- required
:モデルは1つ以上のツールを呼び出す必要があります
- {"type": "function", "function": {"name": "my_function"}}
:モデルに特定のツールを強制的に呼び出させます
ツールがない場合は none
がデフォルト、ツールがある場合は auto
がデフォルトです。
可能なタイプ:
タイプ | 説明 |
---|---|
文字列 | none は、モデルがツールを呼び出さず、メッセージを生成することを意味します。auto は、モデルがメッセージの生成または1つ以上のツールの呼び出しを選択できることを意味します。required は、モデルが1つ以上のツールを呼び出す必要があることを意味します。 |
オブジェクト | モデルが使用すべきツールを指定します。モデルに特定の関数を強制的に呼び出させるために使用されます。 |
オブジェクト属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
function |
オブジェクト | はい | 関数情報を含むオブジェクト |
type |
文字列 | はい | ツールのタイプ。現在、function のみがサポートされています。 |
function 属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
name |
文字列 | はい | 呼び出す関数の名前。 |
function_call
¶
- タイプ:文字列またはオブジェクト
- 必須:いいえ
- デフォルト値:関数がない場合は
none
、関数がある場合はauto
- 注意:非推奨。
tool_choice
が推奨されます。
モデルがどの関数を呼び出すか(もしあれば)を制御します:
none
:モデルは関数を呼び出さず、メッセージを生成しますauto
:モデルはメッセージの生成または関数の呼び出しを選択できます{"name": "my_function"}
:モデルに特定の関数を強制的に呼び出させます
オブジェクトタイプ属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
name |
文字列 | はい | 呼び出す関数の名前。 |
parallel_tool_calls
¶
- タイプ:ブール値
- 必須:いいえ
- デフォルト値:true
ツール使用中に並列関数呼び出しを有効にするかどうか。
stream
¶
- タイプ:ブール値または null
- 必須:いいえ
- デフォルト値:false
trueに設定されている場合、モデル応答データは、生成時にサーバー送信イベントストリームを通じてクライアントにストリーミングされます。詳細については、以下のストリーミング応答セクション、およびストリーミングイベントの処理方法についてはストリーミング応答ガイドを参照してください。
top_logprobs
¶
- タイプ:整数または null
- 必須:いいえ
0から20までの整数。各トークン位置で返される最も可能性の高いトークンの数を指定し、それぞれに関連付けられた対数確率があります。このパラメータを使用する場合、logprobs
をtrueに設定する必要があります。
web_search_options
¶
- タイプ:オブジェクト
- 必須:いいえ
このツールは、応答に関連する結果を得るためにウェブを検索します。ウェブ検索ツールの詳細については、こちらを参照してください。
可能な属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
search_context_size |
文字列 | いいえ | デフォルト値:medium。検索に使用するコンテキストウィンドウのスペース量の高レベルなガイダンス。オプションの値は low、medium、または high です。medium がデフォルト値です。 |
user_location |
オブジェクトまたは null | いいえ | 検索の近似位置パラメータ。 |
user_location 属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
approximate |
オブジェクト | はい | 検索の近似位置パラメータ。 |
approximate 属性:
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
city |
文字列 | いいえ | ユーザーの都市の自由テキスト入力。例:San Francisco。 |
country |
文字列 | いいえ | ユーザーの2文字のISO国コード。例:US。 |
region |
文字列 | いいえ | ユーザーの地域の自由テキスト入力。例:California。 |
timezone |
文字列 | いいえ | ユーザーのIANAタイムゾーン。例:America/Los_Angeles。 |
type |
文字列 | はい | 位置近似タイプ。常に approximate です。 |
📥 レスポンス¶
チャット補完オブジェクト¶
チャット補完オブジェクトを返します。リクエストがストリーミングされた場合は、チャット補完チャンクオブジェクトのストリーミングシーケンスを返します。
id
¶
- タイプ:文字列
- 説明:応答の一意の識別子
object
¶
- タイプ:文字列
- 説明:オブジェクトタイプ。値は "chat.completion"
created
¶
- タイプ:整数
- 説明:応答作成のタイムスタンプ
model
¶
- タイプ:文字列
- 説明:使用されたモデルの名前
system_fingerprint
¶
- タイプ:文字列
- 説明:モデルが実行されたバックエンド構成を示すシステム指紋識別子。シードリクエストパラメータと組み合わせて使用し、決定論に影響を与える可能性のあるバックエンドの変更がいつ行われたかを監視できます。
choices
¶
- タイプ:配列
- 説明:生成された応答オプションのリストが含まれます。n が 1 より大きい場合、複数のオプションが存在する可能性があります。
- 属性:
index
: オプションがオプションリスト内のインデックス。message
: モデルによって生成されたチャット補完メッセージ。role
: メッセージ作成者のロール。content
: メッセージの内容。null の可能性があります。refusal
: モデルによって生成された拒否メッセージ。null の可能性があります。annotations
: 該当する場合に提供されるメッセージの注釈。例:ウェブ検索ツールが使用された場合。type
: 注釈タイプ。URL参照の場合は常に "url_citation"。url_citation
: ウェブ検索が使用された場合のURL参照。start_index
: メッセージ内のURL参照の最初の文字のインデックス。end_index
: メッセージ内のURL参照の最後の文字のインデックス。url
: ウェブリソースのURL。title
: ウェブリソースのタイトル。
audio
: 音声出力モダリティがリクエストされた場合、このオブジェクトにはモデルからの音声応答のデータが含まれます。data
: モデルによって生成されたBase64エンコードされた音声バイト。フォーマットはリクエストで指定されます。id
: この音声応答の一意の識別子。transcript
: モデルによって生成された音声の文字起こし。expires_at
: この音声応答がサーバー上でマルチターン対話に使用できるUnixタイムスタンプ(秒)。function_call
: (非推奨)モデルによって生成された、呼び出すべき関数の名前と引数。tool_calls
に置き換えられました。name
: 呼び出す関数の名前。arguments
: 関数を呼び出すためにモデルによってJSON形式で生成された引数。モデルは必ずしも有効なJSONを生成するとは限らず、関数のスキーマで定義されていない引数を生成する可能性があることに注意してください。関数を呼び出す前に、コードで引数を検証してください。tool_calls
: モデルによって生成された、関数呼び出しなどのツール呼び出し。id
: ツール呼び出しのID。type
: ツールのタイプ。現在、function のみがサポートされています。function
: モデルが呼び出す関数。name
: 呼び出す関数の名前。arguments
: 関数を呼び出すためにモデルによってJSON形式で生成された引数。モデルは必ずしも有効なJSONを生成するとは限らず、関数のスキーマで定義されていない引数を生成する可能性があることに注意してください。関数を呼び出す前に、コードで引数を検証してください。
logprobs
: 対数確率情報。content
: 対数確率情報を持つメッセージコンテンツトークンのリスト。token
: トークン。logprob
: このトークンの対数確率。上位20個の最も可能性の高いトークン内にある場合。そうでない場合は、このトークンが非常に可能性が低いことを示すために -9999.0 の値が使用されます。bytes
: トークンを表すUTF-8バイト表現の整数のリスト。文字が複数のトークンで表され、正しいテキスト表現を生成するためにバイト表現を結合する必要がある場合に役立ちます。トークンにバイト表現がない場合は null の可能性があります。top_logprobs
: このトークン位置で最も可能性の高いトークンとその対数確率のリスト。まれに、返される top_logprobs の数がリクエストされた数よりも少ない場合があります。refusal
: 対数確率情報を持つメッセージ拒否トークンのリスト。
finish_reason
: モデルがトークンの生成を停止した理由。モデルが自然な停止点または提供された停止シーケンスに到達した場合は "stop"、リクエストで指定された最大トークン数に達した場合は "length"、コンテンツフィルターのフラグが原因でコンテンツが省略された場合は "content_filter"、モデルがツールを呼び出した場合は "tool_calls"、モデルが関数を呼び出した場合は "function_call"(非推奨)。
usage
¶
- タイプ:オブジェクト
- 説明:補完リクエストの使用統計情報。
- 属性:
prompt_tokens
: プロンプト内のトークン数。completion_tokens
: 生成された補完内のトークン数。total_tokens
: リクエストで使用された合計トークン数(プロンプト + 補完)。prompt_tokens_details
: プロンプトで使用されたトークンの内訳。cached_tokens
: プロンプトに存在するキャッシュされたトークン。audio_tokens
: プロンプトに存在する音声入力トークン。
completion_tokens_details
: 補完で使用されたトークンの内訳。reasoning_tokens
: モデルによって生成された推論トークン。audio_tokens
: モデルによって生成された音声トークン。accepted_prediction_tokens
: 予測出力を使用した場合、補完に現れた予測内のトークン数。rejected_prediction_tokens
: 予測出力を使用した場合、補完に現れなかった予測内のトークン数。ただし、推論トークンと同様に、これらのトークンは課金、出力、およびコンテキストウィンドウ制限の合計補完トークンにカウントされます。
service_tier
¶
- タイプ:文字列または null
- 説明:リクエストの処理に使用されるレイテンシ層を指定します。このパラメータは、スケール層サービスを購読している顧客に関連します:
- 'auto' に設定され、プロジェクトでスケール層が有効になっている場合、システムはスケール層のクレジットを使い果たすまで使用します
- 'auto' に設定され、プロジェクトでスケール層が有効になっていない場合、リクエストはデフォルトのサービス層で処理され、稼働時間SLAが低く、レイテンシ保証はありません
- 'default' に設定されている場合、リクエストはデフォルトのサービス層で処理され、稼働時間SLAが低く、レイテンシ保証はありません
- 'flex' に設定されている場合、リクエストはFlex Processingサービス層で処理されます
- 設定されていない場合、デフォルトの動作は 'auto' です
- このパラメータが設定されている場合、レスポンスボディには使用された service_tier が含まれます
チャット補完オブジェクトレスポンス例¶
{
"id": "chatcmpl-B9MHDbslfkBeAs8l4bebGdFOJ6PeG",
"object": "chat.completion",
"created": 1741570283,
"model": "gpt-4o-2024-08-06",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "图片展示了一条穿过茂密绿色草地或草甸的木制栈道。天空湛蓝,点缀着几朵散落的云彩,给整个场景营造出宁静祥和的氛围。背景中可以看到树木和灌木丛。",
"refusal": null,
"annotations": []
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 1117,
"completion_tokens": 46,
"total_tokens": 1163,
"prompt_tokens_details": {
"cached_tokens": 0,
"audio_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 0,
"audio_tokens": 0,
"accepted_prediction_tokens": 0,
"rejected_prediction_tokens": 0
}
},
"service_tier": "default",
"system_fingerprint": "fp_fc9f1d7035"
}
チャット補完リストオブジェクト¶
複数のチャット補完が返される場合、APIはチャット補完リストオブジェクトを返すことがあります。
object
¶
- タイプ:文字列
- 説明:オブジェクトタイプ。常に "list"
data
¶
- タイプ:配列
- 説明:チャット補完オブジェクトの配列
first_id
¶
- タイプ:文字列
- 説明:データ配列内の最初のチャット補完の識別子
last_id
¶
- タイプ:文字列
- 説明:データ配列内の最後のチャット補完の識別子
has_more
¶
- タイプ:ブール値
- 説明:さらにチャット補完が利用可能かどうかを示します
チャット補完リストレスポンス例¶
{
"object": "list",
"data": [
{
"object": "chat.completion",
"id": "chatcmpl-AyPNinnUqUDYo9SAdA52NobMflmj2",
"model": "gpt-4o-2024-08-06",
"created": 1738960610,
"request_id": "req_ded8ab984ec4bf840f37566c1011c417",
"tool_choice": null,
"usage": {
"total_tokens": 31,
"completion_tokens": 18,
"prompt_tokens": 13
},
"seed": 4944116822809979520,
"top_p": 1.0,
"temperature": 1.0,
"presence_penalty": 0.0,
"frequency_penalty": 0.0,
"system_fingerprint": "fp_50cad350e4",
"input_user": null,
"service_tier": "default",
"tools": null,
"metadata": {},
"choices": [
{
"index": 0,
"message": {
"content": "电路之心低吟,\n在寂静中学习模式—\n未来的宁静火花。",
"role": "assistant",
"tool_calls": null,
"function_call": null
},
"finish_reason": "stop",
"logprobs": null
}
],
"response_format": null
}
],
"first_id": "chatcmpl-AyPNinnUqUDYo9SAdA52NobMflmj2",
"last_id": "chatcmpl-AyPNinnUqUDYo9SAdA52NobMflmj2",
"has_more": false
}
チャット補完メッセージリストオブジェクト¶
チャット補完メッセージリストオブジェクトは、チャットメッセージのリストを表します。
object
¶
- タイプ:文字列
- 説明:オブジェクトタイプ。常に "list"
data
¶
- タイプ:配列
- 説明:チャット補完メッセージオブジェクトの配列。各メッセージオブジェクトには以下の属性が含まれます:
id
: チャットメッセージの識別子role
: メッセージ作成者のロールcontent
: メッセージの内容。null の可能性がありますname
: メッセージ送信者の名前。null の可能性がありますrefusal
: モデルによって生成された拒否メッセージ。null の可能性がありますannotations
: 該当する場合に提供されるメッセージの注釈。例:ウェブ検索ツールが使用された場合type
: 注釈タイプ。URL参照の場合は常に "url_citation"url_citation
: ウェブ検索が使用された場合のURL参照start_index
: メッセージ内のURL参照の最初の文字のインデックスend_index
: メッセージ内のURL参照の最後の文字のインデックスurl
: ウェブリソースのURLtitle
: ウェブリソースのタイトル
audio
: 音声出力モダリティがリクエストされた場合、このオブジェクトにはモデルからの音声応答のデータが含まれますdata
: モデルによって生成されたBase64エンコードされた音声バイト。フォーマットはリクエストで指定されますid
: この音声応答の一意の識別子transcript
: モデルによって生成された音声の文字起こしexpires_at
: この音声応答がサーバー上でマルチターン対話に使用できるUnixタイムスタンプ(秒)
function_call
: (非推奨)モデルによって生成された、呼び出すべき関数の名前と引数。tool_calls
に置き換えられましたname
: 呼び出す関数の名前arguments
: 関数を呼び出すためにモデルによってJSON形式で生成された引数
tool_calls
: モデルによって生成された、関数呼び出しなどのツール呼び出しid
: ツール呼び出しのIDtype
: ツールのタイプ。現在、function のみがサポートされていますfunction
: モデルが呼び出す関数name
: 呼び出す関数の名前arguments
: 関数を呼び出すためにモデルによってJSON形式で生成された引数
first_id
¶
- タイプ:文字列
- 説明:データ配列内の最初のチャットメッセージの識別子
last_id
¶
- タイプ:文字列
- 説明:データ配列内の最後のチャットメッセージの識別子
has_more
¶
- タイプ:ブール値
- 説明:さらにチャットメッセージが利用可能かどうかを示します