rag-conversation-zep
这个模板演示了如何使用 Zep 构建一个 RAG 对话应用。
这个模板包括以下内容:
使用 Zep 文档集合 填充一组文档(集合类似于其他向量数据库中的索引)。
使用 Zep 的集成嵌入功能将文档嵌入为向量。
配置 LangChain 的 ZepVectorStore 检索器,使用 Zep 的硬件加速的 最大边际相关性(MMR)重新排序来检索文档。
提示、简单的聊天历史数据结构和其他构建 RAG 对话应用所需的组件。
RAG 对话链。
关于 Zep - 快速、可扩展的 LLM 应用构建模块
Zep 是一个用于生产化 LLM 应用的开源平台。无需重写代码,从 LangChain 或 LlamaIndex 的原型,或自定义应用,转变为生产环境只需几分钟。
主要特点:
快速!Zep 的异步提取器独立于聊天循环运行,确保用户体验流畅。
长期记忆持久性,可以访问历史消息,无论您的摘要策略如何。
基于可配置的消息窗口自动摘要记忆消息。一系列摘要被存储,为未来的摘要策略提供灵活性。
混合搜索记忆和元数据,消息在创建时自动嵌入。
实体提取器自动从消息中提取命名实体,并将其存储在消息元数据中。
记忆和摘要的自动令牌计数,允许更精细地控制提示的组装。
Python 和 JavaScript SDK。
Zep 项目:https://github.com/getzep/zep | 文档:https://docs.getzep.com/
环境设置
按照快速入门指南设置 Zep 服务。
将文档导入 Zep 集合
运行 python ingest.py
将测试文档导入 Zep 集合。请查看文件以修改集合名称和文档来源。
使用方法
要使用此包,您首先应该安装 LangChain CLI:
pip install -U "langchain-cli[serve]"
要创建一个新的 LangChain 项目并将其安装为唯一的包,可以执行以下操作:
langchain app new my-app --package rag-conversation-zep
如果要将其添加到现有项目中,只需运行:
langchain app add rag-conversation-zep
并将以下代码添加到您的 server.py
文件中:
from rag_conversation_zep import chain as rag_conversation_zep_chain
add_routes(app, rag_conversation_zep_chain, path="/rag-conversation-zep")
(可选)现在让我们配置 LangSmith。
LangSmith 将帮助我们跟踪、监控和调试 LangChain 应用程序。
您可以在这里注册 LangSmith。
如果您没有访问权限,可以跳过此部分。
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project> # 如果未指定,默认为 "default"
如果您在此目录中,则可以直接启动 LangServe 实例:
langchain serve
这将在本地启动 FastAPI 应用程序,服务器正在运行在 http://localhost:8000
我们可以在 http://127.0.0.1:8000/docs 上查看所有模板。
我们可以在 http://127.0.0.1:8000/rag-conversation-zep/playground 上访问 playground。
我们可以通过以下代码访问模板:
from langserve.client import RemoteRunnable
runnable = RemoteRunnable("http://localhost:8000/rag-conversation-zep")