OpenAIの対話形式(Chat Completions)
官方ドキュメント OpenAI Chat
会話を含むメッセージのリストを指定すると、モデルがレスポンスを返します。関連するガイドは OpenAI 公式サイトの Chat Completions を参照してください。
💡 リクエスト例
Section titled “💡 リクエスト例”基本的なテキスト対話 ✅
Section titled “基本的なテキスト対話 ✅”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 }}画像解析対話 ✅
Section titled “画像解析対話 ✅”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 }}ストリーミングレスポンス ✅
Section titled “ストリーミングレスポンス ✅”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"}]}関数呼び出し ✅
Section titled “関数呼び出し ✅”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 }}JSON モード出力 ✅
Section titled “JSON モード出力 ✅”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 }}📮 リクエスト
Section titled “📮 リクエスト”エンドポイント
Section titled “エンドポイント”POST /v1/chat/completions 与えられたチャット会話に対するモデルの応答を作成します。詳細はテキスト生成、ビジュアル、音声のガイドを参照してください。
リクエストヘッダーに以下を含めて API キー認証を行います:
Authorization: Bearer $4ALLAPI_API_KEYここで $4ALLAPI_API_KEY は、あなたの API キーです。API キーは 4All API プラットフォームの API キーページで確認または生成できます。
リクエスト本文のパラメータ
Section titled “リクエスト本文のパラメータ”messages
Section titled “messages”- 種類: 配列
- 必須: はい これまでの会話を含むメッセージの一覧です。使用するモデルに応じて、テキスト、画像、音声など、異なるメッセージの種類(形式)がサポートされます。
- 種類: 文字列
- 必須: はい 使用するモデル ID です。Chat API に対応しているモデルの詳細は、モデルエンドポイント互換性表を参照してください。
- 種類: 真偽値または null
- 必須: いいえ
- デフォルト値: false このチャット補完リクエストの出力を、モデル蒸留または評価製品のために保存するかどうかを指定します。
reasoning_effort
Section titled “reasoning_effort”- 種類: 文字列または null
- 必須: いいえ
- デフォルト値: medium
- o1 および o3-mini モデルにのみ適用 推論モデルの推論負荷を制御します。現在サポートされている値は low、medium、high です。推論負荷を下げると、応答速度が向上し、応答内で推論に使われるトークン数も減少します。
metadata
Section titled “metadata”- 種類: map
- 必須: いいえ オブジェクトに付与できる 16 個のキー・バリューペアのコレクションです。構造化された形式でオブジェクトに関する追加情報を保存するのに便利で、API やダッシュボードからオブジェクトを検索できます。 キーは最大 64 文字の文字列、値は最大 512 文字の文字列です。
modalities
Section titled “modalities”- 種類: 配列または null
- 必須: いいえ このリクエストでモデルに生成させたい出力の種類です。ほとんどのモデルはテキストを生成でき、これがデフォルトです: [“text”] このモデルは音声生成にも利用できます。テキストと音声の両方を生成させるには、[“text”, “audio”] を指定します。
prediction
Section titled “prediction”- 種類: オブジェクト
- 必須: いいえ あらかじめモデル応答の大部分が分かっている場合に、応答時間を大幅に短縮できる予測出力の設定です。ファイルに小さな変更だけを加えるケースで特に有効です。
- 種類: オブジェクトまたは null
- 必須: いいえ
音声出力のパラメータです。音声出力を
modalities: ["audio"]で要求する場合に必要です。
temperature
Section titled “temperature”- 種類: 数値または 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 つのシーケンスです。
max_tokens
Section titled “max_tokens”- 種類: 整数または null
- 必須: いいえ チャット補完で生成可能な最大トークン数です。この値は、API で生成されるテキストのコストを制御するのに使えます。 この値は現在非推奨で、代わりに max_completion_tokens を使用してください。また、o1 系モデルとは互換性がありません。
presence_penalty
Section titled “presence_penalty”- 種類: 数値または null
- 必須: いいえ
- デフォルト値: 0 -2.0 から 2.0 の範囲の数値です。正の値を指定すると、これまでのテキストに新しいトークンが出現したかどうかに応じてペナルティを与え、モデルが新しい話題を扱いやすくなります。
frequency_penalty
Section titled “frequency_penalty”- 種類: 数値または null
- 必須: いいえ
- デフォルト値: 0 -2.0 から 2.0 の範囲の数値です。正の値を指定すると、これまでのテキスト中での既出頻度に応じて新しいトークンにペナルティを与え、モデルが同じ文を逐語的に繰り返しにくくなります。
logit_bias
Section titled “logit_bias”- 種類: map
- 必須: いいえ
- デフォルト値: null 指定したトークンが補完に現れる可能性を調整します。 トークン ID をキー、-100 から 100 の範囲のバイアス値を値とする JSON オブジェクトを受け取ります。数学的には、そのバイアスはサンプリング前にモデルが生成する logit に加算されます。正確な効果はモデルによって異なりますが、-1 から 1 の値で選択されやすさを下げたり上げたりできます。-100 や 100 のような値では、該当トークンを禁止または独占的に選択させることになります。
- 種類: 文字列
- 必須: いいえ 最終ユーザーの一意な識別子です。4All API が不正利用の監視や検出を行うのに役立ちます。詳細
service_tier
Section titled “service_tier”- 種類: 文字列または null
- 必須: いいえ
- デフォルト値: auto リクエスト処理に使用するレイテンシ階層を指定します。このパラメータは、Scale tier サービスを契約している顧客向けです:
- ‘auto’ に設定し、かつプロジェクトで Scale tier が有効な場合、使い切るまで scale tier クレジットが使用されます
- ‘auto’ に設定し、かつプロジェクトで Scale tier が有効でない場合、リクエストはデフォルトのサービス階層で処理され、可用性 SLA は低く、レイテンシ保証はありません
- ‘default’ に設定した場合、リクエストはデフォルトのサービス階層で処理され、可用性 SLA は低く、レイテンシ保証はありません
- 未設定の場合、デフォルトの挙動は ‘auto’ です
stream_options
Section titled “stream_options”- 種類: オブジェクトまたは null
- 必須: いいえ
- デフォルト値: null ストリーミングレスポンスのオプションです。stream: true が設定されている場合のみ使用します。
response_format
Section titled “response_format”- 種類: オブジェクト
- 必須: いいえ モデルに出力させる形式を指定します。
- { “type”: “json_schema”, “json_schema”: {…} } に設定すると、構造化出力が有効になり、モデルが指定した JSON Schema に一致することが保証されます。
- { “type”: “json_object” } に設定すると、JSON モードが有効になり、モデルが生成するメッセージが有効な JSON であることが保証されます。 重要: JSON モードを使用する場合は、システムメッセージまたはユーザーメッセージで、JSON を生成するようモデルに明示的に指示する必要があります。そうしないと、トークン上限に達するまで空白が延々と生成される可能性があります。
- 種類: 整数または null
- 必須: いいえ Beta 機能です。指定すると、システムはできる限り決定論的なサンプリングを行い、同じ seed とパラメータを持つ繰り返しリクエストは同じ結果を返すはずです。ただし決定性は保証されないため、バックエンドの変化を監視するにはレスポンスのパラメータを参照してください。
- 種類: 配列
- 必須: いいえ モデルが呼び出せるツールの一覧です。現在は関数のみサポートされています。このパラメータで、モデルが JSON 入力を生成できる関数のリストを指定します。最大 128 個の関数をサポートします。
tool_choice
Section titled “tool_choice”- 種類: 文字列またはオブジェクト
- 必須: いいえ モデルがどのツールを呼び出すかを制御します(ある場合): - none: モデルはツールを呼び出さず、メッセージを生成します - auto: モデルはメッセージの生成と 1 つ以上のツール呼び出しのどちらかを選べます - required: モデルは 1 つ以上のツールを呼び出さなければなりません - {“type”: “function”, “function”: {“name”: “my_function”}}: 特定のツールの呼び出しを強制します ツールがない場合のデフォルトは none、ツールがある場合のデフォルトは auto です。
parallel_tool_calls
Section titled “parallel_tool_calls”- 種類: 真偽値
- 必須: いいえ
- デフォルト値: true ツール使用時に並列関数呼び出しを有効にするかどうかを指定します。
📥 レスポンス
Section titled “📥 レスポンス”成功レスポンス
Section titled “成功レスポンス”チャット補完オブジェクトを返します。リクエストがストリーミングの場合は、チャット補完チャンクオブジェクトのストリームを返します。
- 種類: 文字列
- 説明: レスポンスの一意な識別子
object
Section titled “object”- 種類: 文字列
- 説明: オブジェクト種別。値は “chat.completion”
created
Section titled “created”- 種類: 整数
- 説明: レスポンス作成時のタイムスタンプ
- 種類: 文字列
- 説明: 使用されたモデル名
system_fingerprint
Section titled “system_fingerprint”- 種類: 文字列
- 説明: システムフィンガープリント識別子
choices
Section titled “choices”- 種類: 配列
- 説明: 生成された応答候補を含みます
- 属性:
- index: 候補のインデックス
- message: 役割と内容を含むメッセージオブジェクト
- logprobs: ログ確率情報
- finish_reason: 終了理由
- 種類: オブジェクト
- 説明: token 使用統計
- 属性:
- prompt_tokens: プロンプトで使用された token 数
- completion_tokens: 補完で使用された token 数
- total_tokens: 合計 token 数
- completion_tokens_details: token の詳細情報