项目介绍:Zep - 构建 AI 栈的记忆基础
Zep 是一个强大的平台,旨在通过用户互动不断学习来增强您的 AI 代理的知识,实现个性化体验并提高准确性。无论是开发能持续学习的 AI 代理,还是为用户提供量身定制的服务,Zep 都是您的理想选择。
Zep 的工作原理
- 在每次用户交互或代理事件中,将聊天信息或数据工件添加到 Zep 中。
- Zep 智能地将这些新信息融入用户的知识图中,并根据需要更新现有上下文。
- 在后续交互或事件中,从 Zep 中检索相关事实。
Zep 的时间知识图保留了事实的上下文信息,使 AI 代理能够推理状态变化并提供数据来源的见解。每个事实都包含 valid_at
和 invalid_at
日期,让代理可以跟踪用户偏好、特性或环境的变化。
快速高效的 Zep
与其他记忆解决方案不同,Zep 不使用代理来确保事实的相关性。它异步预计算事实、实体摘要和其他数据工件,因此检索速度主要取决于嵌入服务的性能。
Zep 支持多类型数据
您可以将各种数据工件添加到 Zep 中,例如:
- 添加聊天历史记录消息。
- 导入 JSON 和非结构化文本。(即将推出)
Zep 支持会话级、用户级和群组级图表。群组图表允许捕获组织知识。
开始使用
使用 Zep 非常简单,您可以从 Zep 快速启动指南 了解详细的安装步骤。
./zep pull
./zep up
请注意,在 zep.yaml
配置文件中设置 secret
值。同时,您还需设置 OPENAI_API_KEY
环境变量。
安装 SDK
Zep 提供了简单易用的 SDK,支持 Python 和 TypeScript/JS 语言,方便开发者集成到他们的应用中:
pip install zep-python
或
npm i @getzep/zep-js
Zep 的 SDK 简介
Zep 提供了一套方便的高层记忆 API,利用 BM25、语义和图搜索来检索与当前对话相关的事实。以下是一个简单的 Python 代码示例:
result = await client.memory.add(session_id, messages=messages)
memory = client.memory.get(session_id="session_id")
Zep 的独特之处
为什么 Zep 使用时间知识图?
知识图是由相互关联的事实构成的网络。Zep 的时间知识图能够自主构建知识图,同时处理关系变化并保持历史上下文。这使得 Zep 能够比单纯依赖语义搜索的解决方案更好地处理状态变化。
格式不可知性
Zep 可以与多种框架配合使用,适用于 LangChain、LangGraph、Chainlit 等多种框架。
Zep 社区版与 Zep 云服务
Zep 社区版是开源的 Zep 发行版,而 Zep 云服务是一个托管服务,旨在为用户提供低延迟、伸缩性和高可用性需求。
总结
Zep 为用户提供了一个强大的工具集,使开发者能轻松管理 AI 代理的长期记忆。无论是复杂的用户交互还是简单的聊天记录管理,Zep 都能为您提供可靠的解决方案。