流式输出
在模型生成过程中逐段接收内容。
流式输出让应用在模型生成过程中持续接收内容,适合聊天界面和较长回复。使用前,请确认所选模型和接口支持流式响应。
开启流式输出
在聊天请求中设置:
{
"stream": true
}完整请求示例:
curl --no-buffer --silent --show-error \
"https://api.vergora.ai/v1/chat/completions" \
-H "Authorization: Bearer ${VERGORA_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_STREAMING_MODEL_ID",
"messages": [
{
"role": "user",
"content": "用三句话解释流式输出。"
}
],
"stream": true
}'读取事件
兼容 SSE 的流式响应可能包含以下事件结构:
data: {"choices":[{"delta":{"content":"你好"},"finish_reason":null}]}
data: {"choices":[{"delta":{},"finish_reason":"stop"}]}
data: [DONE]实际事件结构和结束信号以接口返回为准。
正确处理数据流
- 按 SSE 事件边界读取数据。
- 不要把一次网络数据块直接当作完整 JSON。
- 按顺序合并增量文本。
- 处理空增量、结束事件和流内错误。
- 只有收到正常结束信号后,才把回答标记为完整。
中断、重试与费用
网络断开或客户端超时后,将已接收内容标记为未完成。重新发送通常会产生一条新请求,可能再次产生费用。先到 Requests 核对原请求状态,再决定是否重试。
流中没有用量字段不表示请求没有产生用量。最终用量和费用以请求记录为准。