レスポンスデータの処理
このページでは、4ALL API が返すレスポンスデータを正しく解析する方法を説明します。Chat Completions 経由で呼び出されるすべてのモデルに適用されます。
非ストリーミングレスポンス構造
{ "id": "chatcmpl-xxx", "object": "chat.completion", "model": "gpt-5.5", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "……" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 12, "completion_tokens": 46, "total_tokens": 58 }}finish_reason の処理
| 値 | 意味 | 推奨処理 |
|---|---|---|
stop | 正常終了 | そのまま使用 |
length | max_tokens 上限に達して切り捨てられた | max_tokens を増やすか、分割して続きを生成する |
tool_calls | モデルが関数呼び出しを要求 | 関数を実行した後、結果を返却する。詳しくは FC 関数呼び出し を参照 |
content_filter | コンテンツが上流の安全ポリシーによってブロックされた | プロンプトを調整する |
usage 使用量フィールド
usageは請求照合の根拠です。課金はprompt_tokens/completion_tokensにそれぞれ基づいて計算されます;- ストリーミング呼び出しの最後のデータチャンクにも
usageが含まれます(詳細は ストリーミング出力 を参照); - プロンプトキャッシュがヒットした場合、
prompt_tokens_details.cached_tokensにキャッシュ部分が示されます。 キャッシュ倍率で課金されます。詳しくは キャッシュ課金 を参照してください。
解析の推奨事項
- 常に
choices[0].message.contentを読み取り、choicesの長さが 1 より大きいとは仮定しないでください; - 思考系モデル(
-thinking系)ではreasoning_contentフィールドが付与される場合があります。表示時は本文と区別してください。 詳しくは 推理モデルの出力 を参照してください; - エラー時のレスポンスは
{"error": {...}}構造です。処理方法は エラーコードと再試行 を参照してください。