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", 
    messages=[{"role": "user", "content": "帮我写一首关于非线性进化的诗。"}],
    stream=True # 开启流式输出
)

# 迭代响应块
for chunk in response:
    if chunk.choices[0].delta.content:
        # 实时打印生成的内容
        print(chunk.choices[0].delta.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",
    "messages": [{"role": "user", "content": "你好"}],
    "stream": true
  }'