问题现象与分析
问题描述
在实现AI流式回答功能后,发现当用户刷新页面或重新进入历史会话时,部分AI回答内容会消失。经排查发现,这些消失的回答都是在流式传输模式下生成的AI回答。
根本原因分析
-
数据保存机制缺陷:
- 流式传输过程中,前端实时接收并显示数据块(chunks)
- 后端成功将这些数据块发送给前端,但未在流结束时将完整回答保存到数据库
- 只有非流式的普通回答会被持久化
-
代码逻辑问题:
- 流式处理完成回调中缺少数据库保存操作
- 错误处理分支中没有考虑数据持久化
- 前端断开连接时没有触发保存机制
-
数据完整性风险:
- 网络中断可能导致整个回答丢失
- 用户提前离开页面也会导致回答不完整保存