Zep
Recall, understand, and extract data from chat histories. Power personalized AI experiences.
Zep is a long-term memory service for AI Assistant apps. With Zep, you can provide AI assistants with the ability to recall past conversations, no matter how distant, while also reducing hallucinations, latency, and cost.
Zep是如何工作的
Zep 保存并回忆聊天历史记录,同时自动生成这些聊天历史的摘要和其他相关产物。 它还会嵌入消息和摘要,使您能够搜索 Zep 以获取过去对话中的相关上下文。 Zep 以异步方式完成所有这些操作,确保这些操作不会影响用户的聊天体验。 数据会被持久化到数据库中,使您能够在增长需求下进行扩展。
Zep 还提供了一个简单易用的文档向量搜索抽象,称为文档集合 (Document Collections)。 它旨在补充 Zep 的核心记忆功能,但并非设计为通用的向量数据库。
Zep 使您能够更有针对性地构建您的提示:
- 自动添加几条最近的消息,数量可根据您的应用进行自定义;
- 上述消息之前最近对话的摘要;
- 和/或从整个聊天会话中提取的上下文相关摘要或消息。
- 和/或来自Zep文档集合的相关业务数据。
什么是Zep Cloud?
Zep Cloud 是一项以 Zep 开源为核心托管的服务。 除了 Zep 开源的记忆管理功能外,Zep Cloud 还提供:
- 事实提取: 自动从对话中构建事实表,无需预先定义数据模式。
- 对话分类: 快速且准确地对聊天对话进行分类。理解用户意图和情感,划分用户群体等。根据语义上下文路由链条,并触发事件。
- 结构化数据提取: 使用您定义的模式,快速从聊天对话中提取业务数据。了解您的助手接下来应该询问什么以完成其任务。
Zep开源
Zep 提供了一个开源版本,并支持自托管选项。 更多信息请参考 Zep 开源 仓库。 您还可以找到与 Zep 开源兼容的 检索器、向量存储 和 存储 示例。
Zep Cloud 安装与设置
- 安装 Zep Cloud SDK:
pip install zep_cloud
or
poetry add zep_cloud
存储
Zep的记忆API将用户的聊天历史和元数据保存到会话中,丰富记忆内容,并允许对历史聊天消息和对话摘要进行向量相似性搜索。
Zep 提供了几种方法,可以利用历史对话中的上下文来填充提示。
永久记忆
这是默认的内存类型。 从对话中提取的重要事实存储在事实表中。 随着新消息添加到会话中,该事实表会实时更新。 每次调用内存 API 获取内存时,Zep 会返回事实表、最近的消息(根据您的消息窗口设置)以及消息窗口之前最近消息的摘要。 事实表、摘要和提示中最 recent 消息的结合为大型语言模型提供了事实背景和细微差别。
摘要检索器内存
返回最近的消息以及与当前对话相关的过去消息的摘要,使您能够为助手提供来自以往对话的有用上下文信息。
消息窗口缓冲区记忆
返回当前对话中最近的 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会话中检索消息,并使用它们来构建您的提示。
检索器支持对单条消息和对话摘要进行搜索。后者有助于为大型语言模型提供丰富但简洁的相关过往对话上下文。
Zep的记忆检索器支持相似性搜索和最大边际相关性(MMR)重排序。MMR搜索有助于确保检索到的消息具有多样性,且彼此之间不会过于相似。
查看一个 使用示例。
from langchain_community.retrievers import ZepCloudRetriever
向量存储
Zep的文档向量存储API允许您通过向量相似性搜索来存储和检索文档。使用Zep,您无需了解距离函数、嵌入类型或索引最佳实践。您只需传入分块的文档,Zep会处理其余的事情。
Zep 支持相似性搜索和最大边际相关性 (MMR) 重排序。 MMR 搜索有助于确保检索到的文档具有多样性,且彼此之间不会过于相似。
from langchain_community.vectorstores import ZepCloudVectorStore
查看一个 使用示例。