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