AI 流式输出可靠性
AI 流式输出可靠性实战专题
SSE、断线重连与事件去重
AI 应用把答案逐字展示给用户后,真正的工程问题才开始出现:代理缓冲、半条事件、网络断线、重复重放和停止按钮都可能让最终内容错乱。本专题围绕 SSE 流式链路,整理从协议、服务端 flush 到客户端重连、事件序号和生产排障的完整路径。
可靠性验收清单
用可观测信号判断流式链路是否真的可用
SSE 断线后应该从哪里继续?
服务端应为可重放事件提供稳定的事件 ID,客户端记录最后确认的 ID,并通过 Last-Event-ID 或业务游标请求缺失区间。恢复后按 ID 幂等合并,不能把整段文本直接拼接,否则会产生重复片段。
为什么已经调用 Flush,浏览器仍然看不到增量?
Flusher 只能把应用缓冲交给网络栈,代理、网关、压缩层和客户端仍可能继续缓冲。应确认 Content-Type 为 text/event-stream,关闭不必要的代理缓冲,发送心跳并用真实链路测试首事件和后续事件到达时间。
流式事件重复时怎样避免最终答案重复?
不要按到达次数合并,而应以 event_id 或业务 sequence 去重;为已确认事件保留窗口,重连重放时只接受未确认序号,并在 done 事件后冻结结果,防止迟到事件再次修改内容。
AI 流式接口的超时应该设置多长?
至少区分连接建立、首事件、事件间隔和总时长四类超时。首事件允许模型冷启动,事件间隔用于发现上游卡死,总时长保护成本和连接资源;具体数值应由模型、代理和业务 SLA 的实测数据决定。
相关专题
继续查看相近方向内容
最新文章
-
整理 magisk 官方 GitHub 的问题反馈入口、安装问题与应用崩溃对应的日志类型,以及提交前的隐私和设备安全边界。146 2秒前
-
PHP 多进程同时写同一文件时,用同一个独立锁文件配合 flock(LOCK_EX) 保护完整临界区;本文讲清 fopen 模式、ftruncate、LOCK_NB、读取共享锁和异常释放。474 6分钟前
-
Go exec.Command 使用裸程序名时会经过 PATH 查找,Go 1.19 起不会隐式执行当前目录中的程序。本文说明 ErrDot 原因、显式相对路径写法,以及 Dir、PATH 和兼容处理的区别。194 7分钟前
-
漫狐漫画在小米应用商店的页面当前显示维护中,本文根据公开产品资料页核对版本、包名、权限与下载限制,说明安装前应关注的状态边界。244 9分钟前
-
Kubernetes 1.37 已发布,升级前应区分默认开启、默认恢复和仍需手动开启的能力。本文从控制面读取、HPA、MemoryQoS、PVC、SELinux、StatefulSet 与 Beta feature gate 入手,整理灰度验证和回退检查点。399 10分钟前
-
Go html/template 复用页头、页脚和基础布局,关键是拆分 layout、partial、page 三类模板,用 embed.FS 配合 template.ParseFS 解析,再通过 block 注入页面正文。193 11分钟前
-
age动漫首页提供目录、一周更新和排行榜入口。本文根据产品站可见页面,说明如何核对入口、按栏目找内容、理解更新状态,并提醒区分网页观看与APP下载导航。190 18分钟前
-
用 FAISS 做向量检索时,不要把返回位置当成文档主键。本文用 IndexIDMap 绑定 int64 业务 ID,演示 search 结果如何安全回表,并说明 IndexIVF 的选型边界。426 18分钟前