Skip to content

MongoDB Atlas 向量存储节点#

MongoDB Atlas 向量搜索是 MongoDB Atlas 的一项功能,允许用户存储和查询向量嵌入。使用此节点可与 MongoDB Atlas 集合中的向量搜索索引进行交互。您可以插入文档、检索文档,并在链中使用向量存储或作为代理工具。

本页将介绍 MongoDB Atlas 向量存储节点的参数配置,并提供更多资源链接。

凭据

此节点的认证信息可在此处查看凭据配置

/// 注意 | 子节点中的参数解析 子节点在使用表达式处理多个项目时的行为与其他节点不同。

大多数节点(包括根节点)会接收任意数量的输入项,处理这些项目,然后输出结果。您可以使用表达式来引用输入项,节点会依次为每个项目解析表达式。例如,给定五个 name 值作为输入,表达式 {{ $json.name }} 会依次解析为每个名称。

而在子节点中,表达式总是解析为第一个项目。例如,给定五个 name 值作为输入,表达式 {{ $json.name }} 总是解析为第一个名称。 ///

先决条件#

在使用此节点前,请先在您的 MongoDB Atlas 集合中创建向量搜索索引。按以下步骤创建:

  1. 登录 MongoDB Atlas 控制台
  2. 选择您的组织和项目
  3. 找到"搜索与向量搜索"部分
  4. 选择集群并点击"前往搜索"
  5. 点击"创建搜索索引"
  6. 选择"向量搜索"模式并使用可视化或 JSON 编辑器。例如:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    {
      "fields": [
        {
          "type": "vector",
          "path": "<字段名称>",
          "numDimensions": 1536, // 可以是其他值
          "similarity": "<相似度函数>"
        }
      ]
    }
    

  7. 根据您的嵌入模型调整"维度"值(例如 OpenAI 的 text-embedding-small-3 使用 1536

  8. 命名索引并创建

请确保记录以下值,这些是配置节点时必需的:

  • 集合名称
  • 向量索引名称
  • 用于嵌入和元数据的字段名称

节点使用模式#

MongoDB Atlas 向量存储节点可用于以下模式:

作为常规节点使用以插入和检索文档#

您可以将 MongoDB Atlas Vector Store 作为常规节点来插入或获取文档。这种模式将 MongoDB Atlas Vector Store 置于常规连接流程中,而不使用代理。

您可以在此模板的场景1中查看示例(该模板使用 Supabase Vector Store,但模式相同)。

直接连接到 AI 代理作为工具#

您可以将 MongoDB Atlas Vector Store 节点直接连接到 AI 代理的工具连接器,在回答查询时将向量存储作为资源使用。

此处的连接方式为:AI 代理(工具连接器)-> MongoDB Atlas Vector Store 节点。

使用检索器获取文档#

您可以将 Vector Store Retriever 节点与 MongoDB Atlas Vector Store 节点结合使用,从 MongoDB Atlas Vector Store 节点获取文档。这通常与 Question and Answer Chain 节点一起使用,从向量存储中获取与给定聊天输入匹配的文档。

连接流程示例(链接示例使用 Pinecone,但模式相同)如下:Question and Answer Chain(Retriever 连接器)-> Vector Store Retriever(Vector Store 连接器)-> MongoDB Atlas Vector Store。

使用向量存储问答工具回答问题#

另一种模式是使用向量存储问答工具来汇总结果并回答来自MongoDB Atlas向量存储节点的问题。这种模式不是直接将MongoDB Atlas向量存储作为工具连接,而是使用专门设计用于汇总向量存储中数据的工具。

在这种情况下,连接流程(链接示例使用的是内存向量存储,但模式相同)如下所示:AI代理(工具连接器)-> 向量存储问答工具(向量存储连接器)-> 内存向量存储。

节点参数#

操作模式#

该 Vector Store 节点提供四种操作模式:获取多个文档插入文档检索文档(作为链/工具的向量存储)检索文档(作为 AI 代理的工具)。您选择的模式决定了节点可执行的操作以及可用的输入输出选项。

获取多个文档#

在此模式下,您可以通过提供提示词从向量数据库中检索多个文档。提示词将被嵌入并用于相似性搜索。节点将返回与提示词最相似的文档及其相似度分数。当您需要检索相似文档列表并将其作为额外上下文传递给代理时,此模式非常有用。

插入文档#

使用插入文档模式可将新文档存入您的向量数据库。

检索文档(作为链/工具的向量存储)#

将检索文档(作为链/工具的向量存储)模式与向量存储检索器配合使用,可从向量数据库检索文档并将其提供给连接到链的检索器。在此模式下,您必须将节点连接到检索器节点或根节点。

检索文档(作为 AI 代理的工具)#

使用检索文档(作为 AI 代理的工具)模式可在回答查询时将向量存储作为工具资源使用。当向量存储名称和描述与问题细节匹配时,代理在构建响应时会使用该向量存储。

Get Many 参数#

  • Mongo集合:输入要使用的MongoDB集合名称。
  • 向量索引名称:输入MongoDB Atlas集合中的向量搜索索引名称。
  • 嵌入字段:输入文档中包含向量嵌入的字段名称。
  • 元数据字段:输入文档中包含文本元数据的字段名称。

Insert Documents 参数#

  • Mongo集合:输入要使用的MongoDB集合名称。
  • 向量索引名称:输入MongoDB Atlas集合中的向量搜索索引名称。
  • 嵌入字段:输入文档中包含向量嵌入的字段名称。
  • 元数据字段:输入文档中包含文本元数据的字段名称。

检索文档参数(作为链/工具的向量存储)#

  • Mongo 集合:输入要使用的 MongoDB 集合名称。
  • 向量索引名称:输入 MongoDB Atlas 集合中的向量搜索索引名称。
  • 嵌入字段:输入文档中包含向量嵌入的字段名称。
  • 元数据字段:输入文档中包含文本元数据的字段名称。

检索文档参数(作为 AI 代理的工具)#

  • 名称:向量存储的名称。
  • 描述:向大语言模型解释此工具的功能。一个具体清晰的描述能让大语言模型更频繁地产生预期结果。
  • Mongo 集合:输入要使用的 MongoDB 集合名称。
  • 向量索引名称:输入 MongoDB Atlas 集合中的向量搜索索引名称。
  • 限制:输入要从向量存储中检索的结果数量。例如设置为 10 可获取最匹配的十条结果。

节点选项#

选项#

  • 元数据过滤器:根据元数据筛选结果。

模板和示例#

Browse MongoDB Atlas 向量存储 integration templates, or search all templates

相关资源#

参考:

查看 n8n 的高级 AI 文档。

自托管 AI 入门套件#

初次接触 AI 并使用自托管版 n8n?试试 n8n 的自托管 AI 入门套件,通过 Ollama、Qdrant 和 PostgreSQL 快速搭建概念验证或演示环境。