コンテンツにスキップ

OpenAIの対話形式(Chat Completions)

官方ドキュメント OpenAI Chat

会話を含むメッセージのリストを指定すると、モデルがレスポンスを返します。関連するガイドは OpenAI 公式サイトの Chat Completions を参照してください。

Terminal window
curl https://api.4allapi.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $4ALLAPI_API_KEY" \
-d '{
"model": "gpt-4o",
"messages": [
{
"role": "system",
"content": "你是一个有帮助的助手。"
},
{
"role": "user",
"content": "你好!"
}
]
}'

レスポンス例:

{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"model": "gpt-4o-mini",
"system_fingerprint": "fp_44709d6fcb",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "你好!我很高兴能帮助你。请问有什么我可以协助你的吗?"
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
Terminal window
curl https://api.4allapi.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $4ALLAPI_API_KEY" \
-d '{
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "这张图片里有什么?"
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.jpg"
}
}
]
}
],
"max_tokens": 300
}'

レスポンス例:

{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"model": "gpt-4o-mini",
"system_fingerprint": "fp_44709d6fcb",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "这张图片展示了一条木制栈道穿过茂密的绿色湿地。栈道似乎延伸到远处,两旁是郁郁葱葱的植被。"
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
Terminal window
curl https://api.4allapi.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $4ALLAPI_API_KEY" \
-d '{
"model": "gpt-4o",
"messages": [
{
"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":{"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"}]}
Terminal window
curl https://api.4allapi.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $4ALLAPI_API_KEY" \
-d '{
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": "北京今天的天气怎么样?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定位置的当前天气",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "城市名称,如: 北京"
},
"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_weather",
"arguments": "{\"location\": \"北京\", \"unit\": \"celsius\"}"
}
}
]
},
"logprobs": null,
"finish_reason": "tool_calls"
}
],
"usage": {
"prompt_tokens": 82,
"completion_tokens": 17,
"total_tokens": 99
}
}
Terminal window
curl https://api.4allapi.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $4ALLAPI_API_KEY" \
-d '{
"model": "gpt-4o",
"messages": [
{
"role": "system",
"content": "你是一个JSON助手,请以JSON格式回复。"
},
{
"role": "user",
"content": "给我一个用户信息示例"
}
],
"response_format": { "type": "json_object" }
}'

レスポンス例:

{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"model": "gpt-4o-mini",
"system_fingerprint": "fp_44709d6fcb",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "{\"user\":{\"id\":1,\"name\":\"张三\",\"age\":28,\"email\":\"[email protected]\",\"interests\":[\"读书\",\"旅游\",\"摄影\"]}}"
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 15,
"total_tokens": 25
}
}

POST /v1/chat/completions 与えられたチャット会話に対するモデルの応答を作成します。詳細はテキスト生成、ビジュアル、音声のガイドを参照してください。

リクエストヘッダーに以下を含めて API キー認証を行います:

Authorization: Bearer $4ALLAPI_API_KEY

ここで $4ALLAPI_API_KEY は、あなたの API キーです。API キーは 4All API プラットフォームの API キーページで確認または生成できます。

  • 種類: 配列
  • 必須: はい これまでの会話を含むメッセージの一覧です。使用するモデルに応じて、テキスト、画像、音声など、異なるメッセージの種類(形式)がサポートされます。
  • 種類: 文字列
  • 必須: はい 使用するモデル ID です。Chat API に対応しているモデルの詳細は、モデルエンドポイント互換性表を参照してください。
  • 種類: 真偽値または null
  • 必須: いいえ
  • デフォルト値: false このチャット補完リクエストの出力を、モデル蒸留または評価製品のために保存するかどうかを指定します。
  • 種類: 文字列または null
  • 必須: いいえ
  • デフォルト値: medium
  • o1 および o3-mini モデルにのみ適用 推論モデルの推論負荷を制御します。現在サポートされている値は low、medium、high です。推論負荷を下げると、応答速度が向上し、応答内で推論に使われるトークン数も減少します。
  • 種類: map
  • 必須: いいえ オブジェクトに付与できる 16 個のキー・バリューペアのコレクションです。構造化された形式でオブジェクトに関する追加情報を保存するのに便利で、API やダッシュボードからオブジェクトを検索できます。 キーは最大 64 文字の文字列、値は最大 512 文字の文字列です。
  • 種類: 配列または null
  • 必須: いいえ このリクエストでモデルに生成させたい出力の種類です。ほとんどのモデルはテキストを生成でき、これがデフォルトです: [“text”] このモデルは音声生成にも利用できます。テキストと音声の両方を生成させるには、[“text”, “audio”] を指定します。
  • 種類: オブジェクト
  • 必須: いいえ あらかじめモデル応答の大部分が分かっている場合に、応答時間を大幅に短縮できる予測出力の設定です。ファイルに小さな変更だけを加えるケースで特に有効です。
  • 種類: オブジェクトまたは null
  • 必須: いいえ 音声出力のパラメータです。音声出力を modalities: ["audio"] で要求する場合に必要です。
  • 種類: 数値または null
  • 必須: いいえ
  • デフォルト値: 1 使用するサンプリング温度です。0〜2 の範囲で指定します。高い値(例: 0.8)では出力がよりランダムになり、低い値(例: 0.2)ではより集中した決定的な出力になります。通常は temperature か top_p のどちらか一方だけを変更することをおすすめします。
  • 種類: 数値または null
  • 必須: いいえ
  • デフォルト値: 1 サンプリング温度の代替手法である nucleus sampling です。モデルは top_p の確率質量を持つトークン候補のみを考慮します。たとえば 0.1 なら、上位 10% の確率質量に含まれるトークンのみを考慮します。 通常は temperature か top_p のどちらか一方だけを変更することをおすすめします。
  • 種類: 整数または null
  • 必須: いいえ
  • デフォルト値: 1 各入力メッセージに対して生成するチャット補完の候補数です。なお、課金は生成された全候補のトークン数に基づいて行われます。コストを最小限に抑えるには n を 1 にしてください。
  • 種類: 文字列/配列/null
  • 必須: いいえ
  • デフォルト値: null API がそれ以上のトークン生成を停止する、最大 4 つのシーケンスです。
  • 種類: 整数または null
  • 必須: いいえ チャット補完で生成可能な最大トークン数です。この値は、API で生成されるテキストのコストを制御するのに使えます。 この値は現在非推奨で、代わりに max_completion_tokens を使用してください。また、o1 系モデルとは互換性がありません。
  • 種類: 数値または null
  • 必須: いいえ
  • デフォルト値: 0 -2.0 から 2.0 の範囲の数値です。正の値を指定すると、これまでのテキストに新しいトークンが出現したかどうかに応じてペナルティを与え、モデルが新しい話題を扱いやすくなります。
  • 種類: 数値または null
  • 必須: いいえ
  • デフォルト値: 0 -2.0 から 2.0 の範囲の数値です。正の値を指定すると、これまでのテキスト中での既出頻度に応じて新しいトークンにペナルティを与え、モデルが同じ文を逐語的に繰り返しにくくなります。
  • 種類: map
  • 必須: いいえ
  • デフォルト値: null 指定したトークンが補完に現れる可能性を調整します。 トークン ID をキー、-100 から 100 の範囲のバイアス値を値とする JSON オブジェクトを受け取ります。数学的には、そのバイアスはサンプリング前にモデルが生成する logit に加算されます。正確な効果はモデルによって異なりますが、-1 から 1 の値で選択されやすさを下げたり上げたりできます。-100 や 100 のような値では、該当トークンを禁止または独占的に選択させることになります。
  • 種類: 文字列
  • 必須: いいえ 最終ユーザーの一意な識別子です。4All API が不正利用の監視や検出を行うのに役立ちます。詳細
  • 種類: 文字列または null
  • 必須: いいえ
  • デフォルト値: auto リクエスト処理に使用するレイテンシ階層を指定します。このパラメータは、Scale tier サービスを契約している顧客向けです:
  • ‘auto’ に設定し、かつプロジェクトで Scale tier が有効な場合、使い切るまで scale tier クレジットが使用されます
  • ‘auto’ に設定し、かつプロジェクトで Scale tier が有効でない場合、リクエストはデフォルトのサービス階層で処理され、可用性 SLA は低く、レイテンシ保証はありません
  • ‘default’ に設定した場合、リクエストはデフォルトのサービス階層で処理され、可用性 SLA は低く、レイテンシ保証はありません
  • 未設定の場合、デフォルトの挙動は ‘auto’ です
  • 種類: オブジェクトまたは null
  • 必須: いいえ
  • デフォルト値: null ストリーミングレスポンスのオプションです。stream: true が設定されている場合のみ使用します。
  • 種類: オブジェクト
  • 必須: いいえ モデルに出力させる形式を指定します。
  • { “type”: “json_schema”, “json_schema”: {…} } に設定すると、構造化出力が有効になり、モデルが指定した JSON Schema に一致することが保証されます。
  • { “type”: “json_object” } に設定すると、JSON モードが有効になり、モデルが生成するメッセージが有効な JSON であることが保証されます。 重要: JSON モードを使用する場合は、システムメッセージまたはユーザーメッセージで、JSON を生成するようモデルに明示的に指示する必要があります。そうしないと、トークン上限に達するまで空白が延々と生成される可能性があります。
  • 種類: 整数または null
  • 必須: いいえ Beta 機能です。指定すると、システムはできる限り決定論的なサンプリングを行い、同じ seed とパラメータを持つ繰り返しリクエストは同じ結果を返すはずです。ただし決定性は保証されないため、バックエンドの変化を監視するにはレスポンスのパラメータを参照してください。
  • 種類: 配列
  • 必須: いいえ モデルが呼び出せるツールの一覧です。現在は関数のみサポートされています。このパラメータで、モデルが JSON 入力を生成できる関数のリストを指定します。最大 128 個の関数をサポートします。
  • 種類: 文字列またはオブジェクト
  • 必須: いいえ モデルがどのツールを呼び出すかを制御します(ある場合): - none: モデルはツールを呼び出さず、メッセージを生成します - auto: モデルはメッセージの生成と 1 つ以上のツール呼び出しのどちらかを選べます - required: モデルは 1 つ以上のツールを呼び出さなければなりません - {“type”: “function”, “function”: {“name”: “my_function”}}: 特定のツールの呼び出しを強制します ツールがない場合のデフォルトは none、ツールがある場合のデフォルトは auto です。
  • 種類: 真偽値
  • 必須: いいえ
  • デフォルト値: true ツール使用時に並列関数呼び出しを有効にするかどうかを指定します。

チャット補完オブジェクトを返します。リクエストがストリーミングの場合は、チャット補完チャンクオブジェクトのストリームを返します。

  • 種類: 文字列
  • 説明: レスポンスの一意な識別子
  • 種類: 文字列
  • 説明: オブジェクト種別。値は “chat.completion”
  • 種類: 整数
  • 説明: レスポンス作成時のタイムスタンプ
  • 種類: 文字列
  • 説明: 使用されたモデル名
  • 種類: 文字列
  • 説明: システムフィンガープリント識別子
  • 種類: 配列
  • 説明: 生成された応答候補を含みます
  • 属性:
  • index: 候補のインデックス
  • message: 役割と内容を含むメッセージオブジェクト
  • logprobs: ログ確率情報
  • finish_reason: 終了理由
  • 種類: オブジェクト
  • 説明: token 使用統計
  • 属性:
  • prompt_tokens: プロンプトで使用された token 数
  • completion_tokens: 補完で使用された token 数
  • total_tokens: 合計 token 数
  • completion_tokens_details: token の詳細情報