API 进阶用法
接入跑通之后,这一页覆盖生产环境常用的进阶能力:流式输出、常用参数、视觉输入、SDK 接入与重试策略。示例中的 模型ID 请到模型广场复制实际 ID;最小请求示例见 API 端点。
流式输出
对话类应用基本都需要流式(打字机效果)。在请求体里加 "stream": true,响应会以 SSE(Server-Sent Events)逐块返回:
要点:
- 每个数据块以
data:开头,流结束时收到data: [DONE]; - SDK 会自动处理分块(见下方 SDK 示例),自己解析时注意按行分割、跳过空行;
- 长思考模型开启流式后首字延迟仍然存在——思考阶段不产出可见内容属于正常现象,客户端超时要设得足够长;
- Anthropic 格式同样支持
"stream": true,事件结构不同,按 Anthropic SDK 处理即可。
常用参数
各协议格式的参数以对应上游厂商的文档为准,这里列出最常用的几个:
参数透传
网关按协议格式原样转发请求体,上游模型支持的参数都可以直接用,不需要网关侧的额外配置;上游不支持的参数会由上游返回错误。
视觉输入(传图)
支持视觉的模型可以在消息里带图片,OpenAI Chat 格式写法:
- 图片可以是公网 URL,也可以是
data:image/jpeg;base64,...形式的内嵌数据; - 图片会计入输入 token,大图费用显著更高,能压缩先压缩;
- 模型是否支持视觉以模型广场的能力标注为准。
SDK 接入
官方 SDK 只需要改 base_url 和 api_key 两个参数:
密钥建议放环境变量(OPENAI_API_KEY / ANTHROPIC_API_KEY),SDK 会自动读取,不要写死在代码里提交到仓库——安全要求见使用政策。
超时与重试策略
生产环境的健壮性建议:
- 超时设长一点:思考类模型的响应时间以分钟计,客户端超时建议 ≥ 300 秒;
- 指数退避重试:对
429和5xx重试,间隔按 1s → 2s → 4s 递增,最多 3 ~ 5 次;4xx(除 429 外)是请求本身的问题,重试无意义; - 不要无脑并发:无退避的密集重试会被系统自动降低优先级,见限速与并发;
- 记录请求 ID:响应头里的请求 ID 是排障和反馈的唯一凭据,建议在日志里保留。