本节我们将为 AI 零代码应用生成平台添加对话历史管理功能,让用户能够查看和管理历史对话记录。这一节的核心在于实现完整的对话记忆体系,让 AI 能够基于历史上下文进行网站的迭代优化,用户可以通过多轮对话来完善和优化生成的网站应用。
本节主要内容:
在前面的章节中,我们实现了 AI 生成应用的核心功能,但存在一个明显的问题:**每次对话都是独立的,AI 无法记住之前的交互内容。**这导致用户无法基于已生成的网站进行迭代改进,极大地限制了平台的实用性。
举个例子:用户首先让 AI 生成一个博客网站,然后希望在此基础上添加评论功能,最后再优化一下页面样式。在没有对话记忆的情况下,每次都需要重新描述完整需求,AI 也会重新生成整个网站,而不是在原有基础上进行改进。
因此,我们需要实现以下需求:
1)对话历史的持久化存储:用户发送消息时,需要保存用户消息;AI 成功回复后,需要保存 AI 消息。即使 AI 回复失败,也要记录错误信息,确保对话的完整性。
2)应用级别的数据隔离:每个应用的对话历史都是独立的。删除应用时,需要关联删除该应用的所有对话历史,避免数据冗余。
3)对话历史查询:支持分页查看某个应用的对话历史,需要区分用户和 AI 消息。类似聊天软件的消息加载机制,每次加载最新 10 条消息,支持 向前加载 更多历史记录。(仅应用创建者和管理员可见)
详细来说,进入应用页面时,前端根据应用 id 先加载一次对话历史消息,关联查询最新 10 条消息。如果存在历史对话,直接展示;如果没有历史记录,才自动发送初始化提示词。这样就解决了之前浏览别人的应用时意外触发对话的问题。
4)管理对话历史:管理员可以查看所有应用的对话历史,按照时间降序排序,便于内容监管。
对于对话历史(聊天记录)的分页查询,不建议使用传统分页查询。
为什么呢?