Skip to main content
流式消息(Streaming)允许在模型生成响应时实时获取内容,而不需要等待完整响应生成完毕。这种方式可以显著改善用户体验,特别是在生成长文本内容时,用户可以立即看到输出开始出现。

功能特性

流式消息采用增量生成机制,在生成过程中将内容分块实时传输,而非等待完整响应生成后一次性返回。这种机制使得开发者可以:
  • 实时响应:无需等待完整响应,内容逐步显示
  • 改善体验:减少用户等待时间,提供即时反馈
  • 降低延迟:内容生成即传输,减少感知延迟
  • 灵活处理:可以在接收过程中进行实时处理和展示

核心参数说明

  • stream=True: 启用流式输出,必须设置为 True
  • model: 支持流式输出的模型,如 glm-4.6glm-4.5

响应格式说明

流式响应采用服务器发送事件(Server-Sent Events, SSE)格式,每个事件包含:
  • choices[0].delta.content: 增量文本内容
  • choices[0].delta.reasoning_content: 增量思考内容
  • choices[0].finish_reason: 完成原因(仅在最后一个chunk中出现)
  • usage: 令牌使用统计(仅在最后一个chunk中出现)

代码示例

  • cURL
  • Python
curl --location 'https://open.bigmodel.cn/api/paas/v4/chat/completions' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "model": "glm-4.6",
    "messages": [
        {
            "role": "user",
            "content": "写一首关于春天的诗"
        }
    ],
    "stream": true
}'

响应示例

流式响应的格式如下:
data: {"id":"1","created":1677652288,"model":"glm-4.6","choices":[{"index":0,"delta":{"content":"春"},"finish_reason":null}]}

data: {"id":"1","created":1677652288,"model":"glm-4.6","choices":[{"index":0,"delta":{"content":"天"},"finish_reason":null}]}

data: {"id":"1","created":1677652288,"model":"glm-4.6","choices":[{"index":0,"delta":{"content":"来"},"finish_reason":null}]}

...

data: {"id":"1","created":1677652288,"model":"glm-4.6","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":8,"completion_tokens":262,"total_tokens":270,"prompt_tokens_details":{"cached_tokens":0}}}

data: [DONE]

应用场景

聊天应用

  • 实时对话体验
  • 逐字显示回复
  • 减少等待时间

内容生成

  • 文章写作助手
  • 代码生成工具
  • 创意内容创作

教育应用

  • 在线答疑系统
  • 学习辅导工具
  • 知识问答平台

客服系统

  • 智能客服机器人
  • 实时问题解答
  • 用户支持系统
I