Skip to main content

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")