项目概述
项目围绕 AI 对话场景进行实现,重点关注流式响应、对话状态管理以及本地数据处理。聊天记录优先保存在本地,减少对服务端数据存储的依赖。流式输出基于第三方库实现,并进一步了解其底层 SSE 数据处理机制。
实践过程
项目首先完成 AI 对话、历史记录和流式输出等基础功能。在实现流式响应时,发现服务端返回的 data: 数据可能被拆分,导致前端直接解析 JSON 时出现异常。
针对这一问题,对 SSE 的数据传输过程进行分析,在前端增加数据缓冲和拆包处理,确保不完整的数据片段能够等待后续内容到达后再进行解析。
随后加入AbortController 管理流式请求 ,使用户可以主动终止生成,同时保留已经接收到的内容。
复盘
对流式数据处理有了更具体的认识。相比直接调用接口,更重要的是理解数据从服务端返回到页面展示之间经历了什么,以及请求中断、异常和部分数据到达时应该如何处理。 通过这次实践,也进一步熟悉了第三方库的使用方式,并开始关注库内部的实现逻辑,而不仅仅是 API 的调用。
截图