Fuoo ← 返回项目

Vue 3 · SSE · AbortController · 流式交互

AI 心理健康助手

一个面向 AI 对话场景的流式交互应用,支持实时生成、主动停止与历史对话管理的助手。

类型
个人项目
状态
持续迭代
角色
设计与开发
https://ai-health.fishoo.top
AI 心理健康助手界面截图

项目概述

项目围绕 AI 对话场景进行实现,重点关注流式响应、对话状态管理以及本地数据处理。聊天记录优先保存在本地,减少对服务端数据存储的依赖。流式输出基于第三方库实现,并进一步了解其底层 SSE 数据处理机制。

实践过程

项目首先完成 AI 对话、历史记录和流式输出等基础功能。在实现流式响应时,发现服务端返回的 data: 数据可能被拆分,导致前端直接解析 JSON 时出现异常。 针对这一问题,对 SSE 的数据传输过程进行分析,在前端增加数据缓冲和拆包处理,确保不完整的数据片段能够等待后续内容到达后再进行解析。 随后加入AbortController 管理流式请求 ,使用户可以主动终止生成,同时保留已经接收到的内容。

复盘

对流式数据处理有了更具体的认识。相比直接调用接口,更重要的是理解数据从服务端返回到页面展示之间经历了什么,以及请求中断、异常和部分数据到达时应该如何处理。 通过这次实践,也进一步熟悉了第三方库的使用方式,并开始关注库内部的实现逻辑,而不仅仅是 API 的调用。

截图

AI 心理健康助手完整界面

技术栈

Vue 3 / JavaScript / SSE / AbortController / 本地存储