🔗涉及到其它平台的关键词,有内容限制,完整内容请见本链接
两个人聊天时,如果没有历史对话信息的记忆,那么交流将面临很多问题。

假设和你聊天的人记不住前面聊的内容,对话将变得很低效,甚至怪异:

Q1:“你和谁一起去吃的饭?”
A1:“Pony”
Q2:“Tony没去吗?”
A2:“什么‘Tony没去吗’?”

同理,在和AI多轮对话时,历史对话内容保存下来作为AI的记忆,后面的对话就有了参考信息,能够带来诸如高效、一致、准确等诸多好处。

在技术层面,如果对话信息临时保存,比如放在内存中,对话结束后就清理掉了,这样的对话信息被称为“短期记忆”。

相对地,被持久化存储的对话信息就被称为“长期记忆”,比如保存到文件中、保存到向量数据库中,将Redis数据持久化到本地等等。

此外,还可以进一步地设置记忆策略。比如,基于后面的对话不一定要用到前面所有对话记录的考虑,只保存最近的n条对话记录,这被称之为窗口记忆;

又或者,因为保存前面所有的对话记录比较占空间以及模型推理的时候费token,所以用大模型总结历史记录得到摘要内容然后再保存,这被称之为摘要记忆。

接下来通过LangChain+Redis来实现一个AI会话(session)的短期记忆、长期记忆以及窗口记忆功能。本文将讲解代码中的几个关键地方,适合有一定基础的读者。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐