Skip to content
阅读进度

如何理解流式输出、超时与取消? ​

返回 工程项目复盘 目录

标准回答 ​

流式输出改善等待期间的反馈,但需要分别记录首个有效内容时延、整体完成时延和中途失败率。网络首字节可能只是心跳或协议头,不应自动当作模型开始生成有效内容。

客户端关闭页面时,应将取消沿代理和上游传播,同时处理已经发生的用量。读取端要增量解析协议边界,不能假定一次网络读取就对应一个完整事件;UTF-8 字符和 JSON 片段都可能被分割。

超时可以拆成连接、首个有效输出、流空闲和总体期限。代理缓冲、连接池、反向代理超时与浏览器状态都会影响体验。取消之后仍可能收到晚到片段,前端应校验请求版本,服务端要用唯一结束状态收口。

追问与回答 ​

断线后能否自动重放整个请求 ​

要确认请求是否会重复产生费用或副作用。可优先查询已记录任务状态;无恢复协议时应明确重新发起的含义。

对话与图像生成能否用同样的等待方式 ​

不一定。长耗时图像任务可能更适合任务 ID、轮询或通知;用户能离开页面并恢复结果,比保持无限 HTTP 连接更可靠。

易混淆点 ​

  • 把客户端停止读取当成上游一定停止计费。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。