对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

开始使用 Langflow 集成

您可以将MongoDB与 Langflow 集成,以通过可视化界面将MongoDB支持的检索添加到您的AI代理中。本教程构建了一个流程,用于配置代理以使用MongoDB。在本教程中,您将执行以下任务:

  1. 将MongoDB配置为向量存储,并将MongoDB博文摄取到其中。

  2. 构建一个使用MongoDB集合作为检索工具的代理。

  3. 运行流程并提出有关博文内容的问题。

Langflow 是一个用于构建AI管道和代理的开源视觉框架。您无需编写代码,而是通过在画布上拖动和连接组件构建流程。每个组件都执行一项离散任务,例如分割文本或查询语言模型。

Langflow 提供了一个 MongoDB Atlas 组件,该组件使用MongoDB Vector Search 作为向量存储。您可以将此组件连接到流程中的其他组件以提取数据、运行相似性搜索或为代理提供查询集合的工具。如果匹配的索引尚不存在,该组件会在您首次运行搜索时在您的集合上创建MongoDB Vector Search索引。

在本教程中,您构建以下流程:

URL → Split Text → ┐
├── MongoDB Atlas → ┐
Embeddings → ┘ ├── Agent → Chat Output
Chat Input → ┘

该流程执行以下任务:

  1. URL 组件获取MongoDB博文的内容,其中描述了MongoDB 9.0发布。

  2. Split Text 组件将该内容拆分为多个数据段。

  3. MongoDB Atlas 组件会嵌入每个数据块并将其写入您的集合。

  4. 当您发送与MongoDB 9.0博文相关的消息时,Agent 组件会调用 MongoDB Atlas 组件作为工具,在您的集合中搜索相关数据段。

  5. 该代理使用任何检索到的数据段生成响应,由 Chat Output 组件返回该响应。

要完成本教程,您必须具备以下资源:

  • 您的计算机上已安装 Langflow。要学习;了解更多信息,请参阅 Langflow 文档中的安装 Langflow。

  • 以下MongoDB 集群类型之一:

    • 运行 MongoDB 6.0.11 版本的 Atlas 集群,7.0.2或以上版本。确保您的 IP 地址 包含在 Atlas 项目的 访问列表 中。

    • 使用 Python 和 Docker 创建的本地 Atlas 部署。安装 atlas-local-lib-py (pip install atlas-local-lib-py),以编程方式创建和管理本地部署。要了解更多信息,请参阅 atlas-local-lib-py 存储库。

    • A MongoDB Community cluster with Search and Vector Search installed.

  • Langflow 支持的嵌入模型和语言模型提供商程序(例如 OpenAI)的API密钥。要学习;了解有关支持模型的更多信息,请参阅 Langflow 文档中的嵌入模型和语言模型。

使用 Langflow 和MongoDB时,请考虑以下事项:

在本部分中,您将创建一个流程,将博文数据添加到MongoDB集合并为该数据编制索引以进行向量搜索。

1

在Python版本中,MongoDB Atlas 组件默认不可用。要安装此组件,运行以下命令:

uv pip install "lfx-bundles[mongodb]"

如果使用Docker运行Langflow,请使用 langflowai/langflow-all 映像而不是 langflowai/langflow。要学习;了解更多信息,请参阅将MongoDB与 Langflow 集成。

2

打开 Langflow 并单击 New Flow 按钮以创建空白流。然后,单击左侧导航栏上的 Components标签页,开始向流程添加组件。

3

将 Data Source 类别中的 URL 组件添加到画布中。将 URLs 参数设置为以下URL ,其中链接到有关MongoDB 9.0 的博文:

https://www.mongodb.com/company/blog/product-release-announcements/mongodb-9-0-this-is-what-a-database-should-be

将 Depth 参数设立保留为其默认值 1.00。

4

要将博文数据划分为多个数据段,请执行以下步骤:

  1. 将 Processing 类别中的 Split Text 组件添加到画布中。

  2. 将 URL 组件的 Extracted Pages 输出连接到 Split Text 组件的 Input。

  3. 将 Chunk Overlap、Chunk Size 和 Separator 参数设立为默认值。

5

将 MongoDB Atlas 组件从 MongoDB 类别添加到画布,并将 Split Text 组件的 Chunks 输出连接到 MongoDB Atlas 组件的 Ingest Data 输入。

在 MongoDB Atlas 组件上配置以下参数:

Parameter
值
MongoDB Atlas Cluster URI

您的MongoDB连接字符串。要学习;了解如何检索连接字符串,请参阅连接字符串。

Database Name

您的数据库名称,例如 langflow_tutorial

Collection Name

您的集合名称,例如 web_page_chunks

Index Name

您的索引名称,例如 langflow_idx

Quantization

索引用于存储向量值的数据类型,可以是 scalar 或 binary

提示

要配置量化参数,请单击MongoDB Atlas组件上方的“参数”按钮。然后,选择“量化”列表项旁边的“添加”按钮。

6

要配置 OpenAI 文本嵌入,请执行以下步骤:

  1. 从 OpenAI 类别中添加 OpenAI Embeddings 组件。

  2. 从 Model 下拉列表中选择您的首选模型。

  3. 在组件的 API Key 参数中指定API密钥。

  4. 将该组件连接到 MongoDB Atlas 组件的 Embedding 输入。

如果您使用其他嵌入提供商,请将相应的组件添加到您的流程中。

7

选择 MongoDB Atlas 组件,然后单击播放图标以构建URL → Split Text → MongoDB Atlas 路径。这会嵌入页面内容,将内容写入集合,并创建MongoDB Vector Search索引(如果不存在)。

The index should take about one minute to build. While it builds, the index is in an initial sync state. When it finishes building, you can start querying the data in your collection.

在本部分中,您将添加一个代理,该代理使用MongoDB集合作为工具来回答有关您提取的页面的问题。

1

将 Models & Agents 类别中的 Agent 组件添加到画布中。

2

要设立助手的语言模型,请执行以下步骤:

  1. 在 Agent 组件中,从 Language Model 下拉列表中选择 Manage Model Providers。

  2. 如果您使用 OpenAI,请从 Model providers 列表中选择 OpenAI,然后输入 OpenAI API密钥。然后,从 Language Model 列表中选择您的 OpenAI语言模型。

  3. 返回到 Agent 组件,然后从 Language Model 下拉列表中选择新配置的语言模型。

3

从 Input & Output 类别中,将 Chat Input 和 Chat Output 组件添加到画布中。

将 Chat Input 连接到 Agent 组件的 Input,并将 Agent 组件的 Response 连接到 Chat Output。

4
  1. 选择 MongoDB Atlas 组件,然后在其标题菜单中启用Tool Mode。

  2. 将 MongoDB Atlas 组件的 Toolset 输出连接到 Agent 组件的 Tools 输入。

您的流程现在具有“关于流程”图表中描述的结构,如下图所示:

本教程的完整流程。
点击放大
5

单击画布右上角的 Playground。然后,提出有关博文的问题,例如 "Which new queryable encryption features does MongoDB 9.0 introduce?"代理会决定是否调用 MongoDB Atlas 工具来搜索您的集合,然后使用任何检索到的数据段生成其响应。

重要

避免重新摄取数据

将MongoDB Atlas组件连接到助手组件后,每次发送消息时,Langflow 都会重新运行整个摄取路径。

在生产流程中,构建摄取路径后冻结MongoDB Atlas组件,防止其重新运行。要学习;了解更多信息,请参阅 Langflow 文档中的冻结组件。

要学习;了解有关 MongoDB Atlas 组件的参数及其创建的MongoDB Vector Search索引的更多信息,请参阅将MongoDB与 Langflow 集成。