跳到主要内容

使用 Langflow 和 Milvus 构建 RAG 系统

本指南演示了如何使用 LangflowMilvus 构建检索增强生成(RAG)流水线。

RAG 系统通过首先从知识库中检索相关文档,然后基于此上下文生成新响应来增强文本生成。Milvus 用于存储和检索文本嵌入,而 Langflow 促进了在可视化工作流程中检索和生成的集成。

Langflow 能够轻松构建 RAG 流水线,其中文本块被嵌入、存储在 Milvus 中,并在进行相关查询时被检索。这使得语言模型能够生成上下文感知的响应。

Milvus 作为一个可扩展的向量数据库,能够快速找到语义相似的文本,而 Langflow 允许您管理流水线如何处理文本检索和响应生成。它们共同提供了一种高效的方式来构建强大的 RAG 流水线,用于增强基于文本的应用程序。

先决条件

在运行此笔记本之前,请确保您已安装以下依赖项:

$ python -m pip install langflow -U

教程

安装所有依赖项后,通过输入以下命令启动 Langflow 仪表板:

$ python -m langflow run

然后会弹出一个仪表板,如下所示: langflow

我们想要创建一个 Vector Store 项目,所以我们首先需要点击 New Project 按钮。会弹出一个面板,我们选择 Vector Store RAG 选项: panel

一旦 Vector Store RAG 项目成功创建,默认的向量存储是 AstraDB,而我们想要使用 Milvus。所以我们需要用 Milvus 替换这两个 AstraDB 模块,以便使用 Milvus 作为向量存储。 astraDB

用 Milvus 替换 AstraDB 的步骤:

  1. 删除现有的 Vector Store 卡片。点击上图中标记为红色的两个 AstraDB 卡片,并按 backspace 删除它们。
  2. 点击侧边栏中的 Vector Store 选项,选择 Milvus 并将其拖入画布。执行此操作两次,因为我们需要 2 个 Milvus 卡片,一个用于存储文件处理工作流程,一个用于搜索工作流程。
  3. 将 Milvus 模块链接到其余组件。请参考下图作为参考。
  4. 为两个 Milvus 模块配置 Milvus 凭据。最简单的方法是通过将连接 URI 设置为 milvus_demo.db 来使用 Milvus Lite。如果您有自部署的 Milvus 服务器或在 Zilliz Cloud 上,请将连接 URI 设置为服务器端点,将连接密码设置为令牌(对于 Milvus,这是连接的"<username>:<password>",对于 Zilliz Cloud,这是 API 密钥)。请参考下图:

Milvus Structure demo

将知识嵌入到 RAG 系统中

  1. 通过左下角的文件模块上传文件作为 LLM 的知识库。这里我们上传了一个包含 Milvus 简介的文件
  2. 通过按右下角 Milvus 模块上的运行按钮来运行插入工作流程。这将把知识插入到 Milvus 向量存储中
  3. 测试知识是否在内存中。打开 playground 并询问与您上传的文件相关的任何内容。

why milvus