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