1. 简介

在默认情况下,模型会在生成完整个回复后再一次性将其返回。对于长文本生成,这可能会导致数十秒的等待时间。 流式输出 (Stream Mode) 允许服务器在生成内容的过程中,将一个个“字符”(Tokens)实时推送到客户端。这能极大地降低 首字延迟 (TTFT, Time To First Token),显著提升用户体验。

2. 工作原理

NoneLinear 的流式输出采用标准的 Server-Sent Events (SSE) 协议。
  • 数据格式:每一行数据都以 data: 开头,紧随其后的是一个 JSON 字符串。
  • 结束标志:当模型生成结束时,服务端会发送 data: [DONE] 消息,表示流已关闭。

3. 调用示例

要在 NoneLinear 智能网关中开启流式输出,只需在请求 JSON 中设置 "stream": true

Python 调用 (使用 OpenAI SDK)

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY", 
    base_url="https://api.nonelinear.com/v1"
)

response = client.chat.completions.create(
    model="DeepSeek-V3.2", 
    messages=[{"role": "user", "content": "帮我写一首关于非线性进化的诗。"}],
    stream=True # 开启流式输出
)

for chunk in response:
    # 有些流式 chunk 可能没有 choices,比如 usage chunk、心跳、兼容层特殊事件
    if not chunk.choices:
        continue

    delta = chunk.choices[0].delta

    # 有些 chunk 有 delta,但没有 content
    content = getattr(delta, "content", None)
    if content:
        print(content, end="", flush=True)

cURL 调用

在命令行使用 curl 调用时,必须添加 -N 参数(或 --no-buffer),否则 curl 会缓存输出,导致无法看到实时跳字的效果。
curl -N -X POST https://api.nonelinear.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "DeepSeek-V3.2",
    "messages": [{"role": "user", "content": "你好"}],
    "stream": true
  }'