Zep
从聊天记录中回忆、理解和提取数据。为个性化 AI 体验提供动力。
Zep 是一种用于 AI 助手应用程序的长期记忆服务。借助 Zep,您可以为 AI 助手提供回忆过去对话的能力,无论对话多么久远,同时还可以减少幻觉、延迟和成本。
Zep 的工作原理
Zep 持久化并回忆聊天记录,并自动从这些聊天记录中生成摘要和其他工件。它还嵌入消息和摘要,使您能够在 Zep 中搜索过去对话的相关上下文。Zep 异步地完成所有这些操作,确保这些操作不会影响用户的聊天体验。数据被持久化到数据库,使您能够在增长需要时进行扩展。
Zep 还为文档向量搜索提供了一个简单易用的抽象,称为文档集合。这旨在补充 Zep 的核心记忆功能,但并非旨在成为通用的向量数据库。
Zep 允许您更有目的地构建提示
- 自动添加一些最近的消息,消息数量可为您的应用自定义;
- 上述消息之前最近对话的摘要;
- 和/或从整个聊天会话中浮现的上下文相关的摘要或消息。
- 和/或来自 Zep 文档集合的相关业务数据。
什么是 Zep Cloud?
Zep Cloud 是一项托管服务,其核心是 Zep 开源。除了 Zep 开源的内存管理功能外,Zep Cloud 还提供
- 事实提取:从对话中自动构建事实表,而无需预先定义数据模式。
- 对话分类:即时准确地对聊天对话进行分类。了解用户意图和情感,细分用户等。根据语义上下文路由链,并触发事件。
- 结构化数据提取:使用您定义的模式从聊天对话中快速提取业务数据。了解您的助手接下来应该要求什么,以便完成其任务。
Zep 开源
Zep 提供具有自托管选项的开源版本。请参阅 Zep 开源 仓库以获取更多信息。您还可以找到 Zep 开源兼容的 检索器、向量存储 和 记忆 示例
Zep Cloud 安装和设置
- 安装 Zep Cloud SDK
pip install zep_cloud
或
poetry add zep_cloud
记忆
Zep 的记忆 API 将用户的聊天历史记录和元数据持久化到 会话 中,丰富记忆,并支持对历史聊天消息和对话摘要进行向量相似性搜索。
Zep 提供了几种使用来自历史对话的上下文填充提示的方法。
永久记忆
这是默认的记忆类型。对话中的显着事实被提取并存储在事实表中。当新消息添加到会话时,它会实时更新。每次您调用 Memory API 获取记忆时,Zep 都会返回事实表、最新的消息(根据您的消息窗口设置)以及消息窗口之前最新消息的摘要。事实表、摘要和提示中最近消息的组合为 LLM 提供了事实背景和细微差别。
摘要检索器记忆
返回最近的消息和过去与当前对话相关的消息的摘要,使您能够为您的助手提供来自过去对话的有用上下文
消息窗口缓冲区记忆
从当前对话返回最近的 N 条消息。
此外,Zep 支持对其系统中存储的消息或摘要进行向量相似性搜索。
此功能使您可以使用过去与特定查询在上下文中相似的对话来填充提示,并按相似度分数组织结果。
可以导入 ZepCloudChatMessageHistory
和 ZepCloudMemory
类以与 Zep Cloud API 交互。
ZepCloudChatMessageHistory
与 RunnableWithMessageHistory
兼容。
from langchain_community.chat_message_histories import ZepCloudChatMessageHistory
在此处查看 永久记忆示例。
您可以将 ZepCloudMemory
与支持记忆的代理一起使用。
from langchain_community.memory import ZepCloudMemory
在此处查看 记忆 RAG 示例。
检索器
Zep 的记忆检索器是一个 LangChain 检索器,使您能够从 Zep 会话中检索消息,并使用它们来构建您的提示。
检索器支持搜索单个消息和对话摘要。后者对于为 LLM 提供丰富但简洁的上下文,说明相关的过去对话非常有用。
Zep 的记忆检索器同时支持相似性搜索和 最大边际相关性 (MMR) 重新排序。 MMR 搜索对于确保检索到的消息是多样化的,并且彼此之间不会过于相似非常有用
请参阅 使用示例。
from langchain_community.retrievers import ZepCloudRetriever
向量存储
Zep 的 文档 VectorStore API 使您能够使用向量相似性搜索来存储和检索文档。Zep 不要求您理解距离函数、嵌入类型或索引最佳实践。您只需传入分块的文档,Zep 即可处理其余的事情。
Zep 同时支持相似性搜索和 最大边际相关性 (MMR) 重新排序。 MMR 搜索对于确保检索到的文档是多样化的,并且彼此之间不会过于相似非常有用。
from langchain_community.vectorstores import ZepCloudVectorStore
请参阅 使用示例。