大模型流式前端,先把连接状态和消息状态分开

发布时间:2026/8/15 5:49:37
大模型流式前端,先把连接状态和消息状态分开 大模型流式前端先把连接状态和消息状态分开流式输出不是“字符串不断变长”这么简单。连接可能重试消息可能取消Markdown 还可能停在半个代码围栏。状态混在一个loading里界面很快失真。两层状态各自负责连接层区分连接中、接收、断开和结束消息层记录草稿、完成、取消与失败。每个请求绑定自己的 AbortController新问题发出前取消旧请求。const controller new AbortController(); fetch(/api/chat, { signal: controller.signal });增量数据先缓冲再解析传输块不等于完整字符或 Markdown 节点。使用流式解码器按协议边界组装事件最终内容再进入 Markdown 渲染。原始 HTML 默认禁用或经过可靠清理。异常仍给用户出口断线后说明消息是否可继续取消不显示成系统错误复制和重新生成只作用于当前版本。测试慢网、乱码、半截代码块和组件卸载确认旧流不会写进新会话。