Zep
从聊天历史记录中调用、理解和提取数据。支持个性化的 AI 体验。
Zep 是 AI Assistant 应用程序的长期内存服务。 使用 Zep,您可以为 AI 助手提供回忆过去对话的能力,无论距离有多远, 同时还可以减少幻觉、延迟和成本。
Zep 的工作原理
Zep 保留并调用聊天历史记录,并从这些聊天历史记录中自动生成摘要和其他项目。 它还嵌入了消息和摘要,使您能够在 Zep 中搜索过去对话中的相关上下文。 Zep 以异步方式执行所有这些作,确保这些作不会影响用户的聊天体验。 数据持久化到数据库中,允许您在增长需要时进行横向扩展。
Zep 还为文档向量搜索提供了一个简单易用的抽象,称为 Document Collections。 这是为了补充 Zep 的核心内存功能,但并非旨在成为通用的向量数据库。
Zep 允许你更有意识地构建你的提示符:
- 自动添加一些最近的消息,并为您的应用程序自定义号码;
- 上述消息之前最近的对话摘要;
- 和/或整个聊天会话中出现的上下文相关的摘要或消息。
- 和/或来自 Zep Document Collections 的相关业务数据。
什么是 Zep Cloud?
Zep Cloud 是一项以 Zep Open Source 为核心的托管服务。 除了 Zep Open Source 的内存管理功能外,Zep Cloud 还提供:
- 事实提取:从对话中自动构建事实表,而无需预先定义数据架构。
- 对话分类:即时准确地对聊天对话进行分类。了解用户意图和情绪、细分用户等。基于语义上下文的路由链,并触发事件。
- 结构化数据提取:使用您定义的架构从聊天对话中快速提取业务数据。了解您的 Google 助理下一步应该要求什么才能完成其任务。
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 将用户的聊天记录和元数据持久化到 Session 中,丰富内存,以及 启用对历史聊天消息和对话摘要的向量相似性搜索。
Zep 提供了多种方法,可以使用历史对话中的上下文填充提示。
永久内存
这是默认内存类型。 对话框中的重要事实将被提取并存储在事实表中。 当新消息添加到 Session 中时,它会实时更新。 每次调用内存 API 获取内存时,Zep 都会返回事实表、最新消息(根据您的消息窗口设置)以及消息窗口之前的最新消息摘要。 事实表、摘要和提示中的最新消息的组合为 LLM 提供了事实上下文和细微差别。
Summary Retriever 内存
返回最近的消息和与当前对话相关的过去消息的摘要, 使您能够向 Google 助理提供过去对话中的有用背景信息
消息窗口缓冲区内存
返回当前会话中最近的 N 条消息。
此外,Zep 还支持对存储在其系统中的消息或摘要进行向量相似性搜索。
此功能允许您使用与特定查询上下文相似的过去对话填充提示。 按 similarity Score 组织结果。
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
在此处查看内存 RAG 示例。
Retriever
Zep 的 Memory Retriever 是一个 LangChain Retriever,使您能够从 Zep 会话中检索消息并使用它们来构建提示符。
Retriever 支持搜索单个消息和对话摘要。后者有助于为 LLM 提供丰富但简洁的背景信息,以说明过去的相关对话。
Zep 的 Memory Retriever 支持相似性搜索和最大边际相关性 (MMR) 重新排序。MMR 搜索有助于确保检索到的消息多种多样且彼此之间不会太相似
请参阅使用示例。
from langchain_community.retrievers import ZepCloudRetriever
矢量存储
Zep 的 Document VectorStore API 使您能够使用向量相似性搜索来存储和检索文档。Zep 不需要您了解 距离函数、嵌入类型或索引最佳实践。您只需传入分块文档,Zep 会处理其余部分。
Zep 支持相似性搜索和最大边际相关性 (MMR) 重新排名。 MMR 搜索可用于确保检索到的文档多样化且彼此不会太相似。
from langchain_community.vectorstores import ZepCloudVectorStore
请参阅使用示例。