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