リクエスト側(base_url、auth、モデルの切り替え)については、互換モードの呼び出しで説明しています。このページは純粋にレスポンス側、つまり返ってきた内容をどうパースするかに焦点を当てています。
2つのモード、1つのエンドポイント
同じ/v1/chat/completionsエンドポイントです。streamフラグだけで形が変わります:
非ストリーミング応答
安定した構造 —choices[0].message.content を読むだけです:
ストリーミングレスポンス (SSE)
ストリーミングでは、チャンクを Server-Sent Events として 1 行ごとにdata: {...} で送信し、data: [DONE] で終了します:
delta.content を蓄積すること です:
統合メモ: いくつかの違いを、共通の方法で処理します
ストリーミングの詳細はモデルごとに少し異なりますが、以下のルールに従えば、1つのコードパスでそれらすべてをカバーできます。堅牢な参考パーサー
raw SSE を自前で処理する場合(SDK を使わない場合)、これで上記のすべての違いをカバーできます:推論モデル(grok、qwen、glm など)は、まず
delta.reasoning_content(思考の連鎖)をストリーミングし、次に delta.content(回答)をストリーミングします。上のパーサーは content だけを読み取るため、思考は自動的にスキップされます。思考を表示するには、推論モデルの出力 を参照してください。使用方法と課金
usageは非ストリーミング応答ではインラインで返り、ストリーミングでは最後のチャンクで届きます(場所は上の表どおりです — 「存在する場合は必ず記録」)。- 項目の内訳は異なります。OpenAI 系では
completion_tokens_detailsが追加され、Gemini/Claude ではinput_tokens/output_tokensが追加され、推論モデルではreasoning_tokensが追加されます。3 つの標準項目、つまりprompt_tokens/completion_tokens/total_tokensを参照してください。
関連リンク
- 同じグループ: 互換モードの呼び出し · 推論モデルの出力 · ネイティブ呼び出し
- モデルと料金: モデルと料金の概要
- token の取得・管理:
https://api.apiyi.com/token