详细解释
流式输出(Streaming Output) 是现在所有聊天 API 的标配。开启方式很简单:在请求里加 stream: true(或 SDK 里的 .stream() 方法),模型每生成一个或一小段 Token 就立刻推给你,不用等全部生成完才一次性返回。
底层协议一般用 Server-Sent Events (SSE):响应 Content-Type 为 text/event-stream,每一行形如 data: {...}。
为什么必须用流式
以一次生成 800 Token 的回答为例:
- 非流式:用户等了 8 秒才看到完整回答(漫长的空白,体感非常差);
- 流式:500ms 后开始蹦字,5–10 秒逐步显现完(感觉模型”正在思考并打字”)。
同样的 TPS,流式会让用户主观感觉”快了 5–10 倍”。
唯元智创(Weimeta)的聚合 API 对所有支持模型均开启流式,并增加了服务端分片合并逻辑,避免返回过于细碎的事件。
代码示例(Python + SDK)
from weimeta import Weimeta
client = Weimeta(api_key="wm-xxxx")
# 非流式
resp = client.chat.completions.create(
model="deepseek-v3", messages=messages
)
print(resp.choices[0].message.content)
# 流式
for chunk in client.chat.completions.create(
model="deepseek-v3", messages=messages, stream=True
):
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
常见问题
流式输出的结果怎么拿到完整 usage token 统计?
OpenAI 兼容格式会在流的最后一条
data: [DONE] 之前,发一条 usage 字段不为空的事件。把每个 chunk 的 delta 累加 + 最后一条 usage 记录,就是精确 Token 数。