响应与计费
流式响应
流式调用的响应和结算边界。
只有已实现的流式入口支持 stream
当前支持流式的模型调用入口是 OpenAI Chat Completions、OpenAI Responses、Anthropic Messages 和 Gemini streamGenerateContent。
支持情况
| API family / operation | 流式方式 | 说明 |
|---|---|---|
| OpenAI Chat Completions | 请求体 "stream": true | 优先使用流中的 usage;安全条件满足时可保守估算 |
| OpenAI Responses | 请求体 "stream": true | 优先读取完成事件的 response usage |
| Codex Search capability | 不支持 | 独立透明传输 operation,不承诺流式响应 |
| OpenAI Images Generations / Images Edits | 不支持 | 图片入口当前只支持同步响应 |
| Anthropic Messages | 请求体 "stream": true | 按 Anthropic stream 观察 usage |
| Gemini GenerateContent | POST /v1beta/models/{model}:streamGenerateContent | 使用 Gemini 原生流式路径 |
| Anthropic Count Tokens | 不支持 | Count Tokens 不是 billable 模型生成调用 |
Gemini 的特殊边界
Gemini 非流式和流式是两个不同路径:
POST /v1beta/models/{model}:generateContent
POST /v1beta/models/{model}:streamGenerateContentgenerateContent 请求体里写 "stream": true 不会自动切换到流式路径,会返回 stream_not_supported。
结算边界
响应开始前失败
例如鉴权失败、余额不足、模型不存在、没有可用上游,客户端会收到对应错误响应。
响应传输中失败
首个 chunk 交付前失败属于零交付,不结算。已经向客户端交付内容后,上游断流、读取失败或客户端取消仍会记录失败原因,并按已收集的 partial usage 或已交付输出的保守下限结算。
响应结束后结算
服务端优先使用合法 usage。按 token 计费且已经交付至少一个上游/model chunk 的 stream,在 usage 缺失或无效时,可能采用带标记的保守下界估算;上游/model 零 chunk 流没有可计费的模型结果,但 2xx 已提交且 body 可能为空或只含网关 SSE keepalive,因此不能改写成错误体;网关会记录失败、释放预留并零扣费。
客户端要保留 request_id
流式响应中问题可能发生在内容已经开始输出之后。排查时保留 X-Request-Id,比只保留最后一段输出更可靠。
最后更新于