大模型前端的流式交互与安全处理
对话界面的难点在于不完整数据、取消请求和不可信文本。传输、状态和渲染应分层处理。
1. 先明确问题边界
至少区分连接中、接收中、完成、取消和失败。每个数据块不一定是完整句子或完整 Markdown,渲染原始 HTML 前必须进行可靠清理。
2. 一个最小实现片段
const controller = new AbortController();
对话界面的难点在于不完整数据、取消请求和不可信文本。传输、状态和渲染应分层处理。
至少区分连接中、接收中、完成、取消和失败。每个数据块不一定是完整句子或完整 Markdown,渲染原始 HTML 前必须进行可靠清理。
const controller = new AbortController();