大模型前端:流式对话、Markdown 渲染与安全交互
对话界面的难点在于不完整数据、取消请求和不可信文本。传输、状态和渲染应分层处理。
1. 把流式会话写成状态机
至少区分连接中、接收中、完成、取消和失败。每个数据块不一定是完整句子或完整 Markdown,渲染原始 HTML 前必须进行可靠清理。
2. 取消要传到网络请求
const controller = new AbortController();
新请求开始前取消旧控制器,组件卸载时也要取消。只停止 UI 更新而不终止请求,后台仍会占连接并可能写回旧结果。
3. 分块边界不能当文本边界
用任意位置切开的 Markdown、半个多字节字符、网络中断和重复分块测试解析。原始 HTML 必须经过项目认可的清理策略。
4. 对话交互的失败状态
除了功能正确性,还要检查加载失败、空数据、重复操作、键盘可用性和组件卸载后的资源清理。涉及服务端的策略需要与接口约定一起验证。
5. 小结
先建立可复现的基线,再做小范围调整并复测。这样得到的结论才能用于后续维护。




