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