SPT术语库

流式响应 Streaming Response

用户让 AI 生成一份较长的周报,页面不必等全文完成才显示;它要先建立连接,再逐段渲染,最后明确完成或失败。

AI 与智能体约 10 分钟 · 从真实需求理解

1为什么 AI 还没说完,页面已经开始显示?

STREAMING RESPONSE · CHUNK + RENDER内容到一段,页面就先显示一段

连接状态、逐段内容和终止原因都要被客户端明确管理。

CONNECT → CHUNK → RENDER
CONNECTIONCONNECTING
等待模型开始发送内容
INCOMING CHUNKS0 / 3 RECEIVED
  1. CHUNK 01本周订单完成率上升WAITING
  2. CHUNK 02退款主要集中在周一WAITING
  3. CHUNK 03建议下周提前补货WAITING
LIVE RENDERWAITING
等待第一段内容…

客户端收到 chunk 后才开始更新回答

TERMINAL STATEWAITING FOR FIRST CHUNK
DONECANCELLEDERROR

流式响应不会等模型生成完整答案才一次性返回,而是把内容拆成连续的 chunk。客户端收到一段就可以追加展示,同时要知道连接还在进行、已经取消、发生错误,还是全部结束。

  • 连接建立后,chunk 会按顺序到达,页面可以边接收边渲染已收到的内容。
  • loading 只表示还在等待;取消和错误必须有不同的可观察结果,不能都留在转圈状态。
  • 只有收到结束信号并完成收尾,客户端才应把这次回答标记为 DONE。

2流式响应不是更快生成,也不是只显示半截文字

流式响应改变的是返回方式:模型仍在生成,客户端先收到先展示。它不保证模型更快完成,也不代表客户端可以忽略连接关闭、取消和错误。

  • 首个 chunk 很快到达,用户会先看到反馈;完整回答仍可能需要更久。
  • 已显示的半截内容只是当前收到的结果,不能在连接失败后被误标成完整答案。

排查问题时,要同时看收到哪些 chunk、连接为何结束,以及页面最后标记的是 DONE、CANCELLED 还是 ERROR。

3流式响应的四个边界

CONNECTIONOPEN开始接收流
CHUNKS01 → 02 → 03按顺序到达
LIVE RENDER回答持续增长收到就追加
TERMINAL STATEDONE · CANCELLED · ERROR

拆开这条输出路径,可以看到连接、分块、实时渲染和终止状态如何共同组成一次可用的流式响应。

  • CONNECTION 说明连接是否建立、仍在接收,还是已经关闭。
  • CHUNKS 是按顺序抵达的内容片段,客户端要避免丢失、重复或乱序追加。
  • LIVE RENDER 把已经收到的片段反馈到页面,但不提前声称回答完成。
  • TERMINAL STATE 明确区分 DONE、CANCELLED 和 ERROR,并保留必要的已收到内容。

4怎样把流式响应需求交给 Agent?

请把周报生成做成流式响应:连接建立后按顺序接收 chunk,并把已到达内容追加到回答区;生成中提供取消入口,连接异常时显示 ERROR 并保留已收到的内容,全部收到后才显示 DONE。验收时检查 loading、取消、错误、结束和重播状态,不要把半截回答标成完成。

5不用背,看看你能不能判断

1 / 3

流式响应和一次性响应最明显的区别是什么?

请选择一个最符合题意的答案

选择答案后自动进入下一题

社区延伸

看别人真实遇到过什么

社区帖子还没有关联到这个词条。