请求侧(base_url、鉴权、换模型)见 兼容模式调用。本页只讲响应侧:拿到响应后怎么解析。
两种模式,同一端点
同一个/v1/chat/completions,只由 stream 参数决定返回形态:
非流式响应
结构稳定,取choices[0].message.content 即可:
流式响应(SSE)
流式以 Server-Sent Events 逐块推送,每行形如data: {...},以 data: [DONE] 收尾:
delta.content:
接入要点:少数差异,统一处理
不同模型的流式细节略有出入,但只要遵守下面几条,就能用同一套代码兼容全部模型。健壮解析参考实现
不依赖 SDK、直接处理原始 SSE 时,按下面的写法可覆盖上述全部差异:推理模型(grok、qwen、glm 等)流式时会先推送
delta.reasoning_content(思考链),再推送 delta.content(正文)。上面的解析只取了 content,因此思考链被自动跳过。需要展示思考过程时的处理见 推理模型输出。usage 与计费
usage在非流式响应里随结果一起返回;流式则在尾部某一块里返回(位置见上表,建议「读到即覆盖」)。- 各家字段细分不同:OpenAI 系有
completion_tokens_details,Gemini/Claude 额外带input_tokens/output_tokens,推理模型带reasoning_tokens。统一以prompt_tokens/completion_tokens/total_tokens三个标准字段为准。