本节重点

本节我们将为 AI 零⁡代码应用生成平台添加对话历史管理功能,让用户‍能够查看和管理历史对话记录。这一节的核心在于‍实现完整的对话记忆体系,让 AI 能够基于历⁡史上下文进行网站的迭代优化,用户可以通过多轮‏对话来完善和优化生成的网站应用。

本节主要内容:

一、需求分析

在前面的章节中,我们实现了 AI 生成应用的核心功能,但存在一个明显的问题:**每次对话都是独立的,AI 无法记住之前的交互内容。**这导致用户无法基于已生成的网站进行迭代改进,极大地限制了平台的实用性。

举个例子:用户首先让⁡ AI 生成一个博客网站,然后希望在此基‍础上添加评论功能,最后再优化一下页面‍样式。在没有对话记忆的情况下,每次都需要重新⁡描述完整需求,AI 也会重新生成整个网站‏,而不是在原有基础上进行改进。

因此,我们需要实现以下需求:

1)对话历史的⁡持久化存储:用户发送消息时,‍需要保存用户消息;AI 成功‍回复后,需要保存 AI 消息⁡。即使 AI 回复失败,也要‏记录错误信息,确保对话的完整性。

2)应用级⁡别的数据隔离:每个应‍用的对话历史都是独‍立的。删除应用时,需要⁡关联删除该应用的所有‏对话历史,避免数据冗余。

3)对话历史查询:支持分页查看某个应用的对话历史,需要区分用户和 AI 消息。类似聊天软件的消息加载机制,每次加载最新 10 条消息,支持 向前加载 更多历史记录。(仅应用创建者和管理员可见)

详细来说,进入应用页面⁡时,前端根据应用 id 先加载一次对话历史‍消息,关联查询最新 10 条消息。如果存在‍历史对话,直接展示;如果没有历史记录,才自⁡动发送初始化提示词。这样就解决了之前浏览别‏人的应用时意外触发对话的问题。

4)管理对⁡话历史:管理员可以‍查看所有应用的对话‍历史,按照时间降序⁡排序,便于内容监管‏。

二、方案设计

分页查询

对于对话历⁡史(聊天记录)的分‍页查询,不建议使用‍传统分页查询。

为什么呢?