跳至内容

MongoDB Atlas向量存储节点#

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

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

Credentials

您可以在此节点的此处找到认证信息。

子节点中的参数解析

在使用表达式处理多个项目时,子节点的行为与其他节点不同。

大多数节点(包括根节点)可以接收任意数量的项目作为输入,处理这些项目并输出结果。您可以使用表达式来引用输入项,节点会依次为每个项目解析该表达式。例如,给定五个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. 根据您的嵌入模型调整"dimensions"值(例如,OpenAI的text-embedding-small-3对应1536)。

  8. 为您的索引命名并创建。

请务必记下以下值,这些是在配置节点时必需的:

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

节点使用模式#

您可以在以下模式中使用MongoDB Atlas向量存储节点:

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

您可以将MongoDB Atlas向量存储作为常规节点使用,用于插入或获取文档。这种模式将MongoDB Atlas向量存储置于常规连接流程中,而不使用智能体。

你可以在此模板的场景1中看到示例(该模板使用Supabase向量存储,但模式相同)。

直接连接AI智能体作为工具#

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

这里的连接关系是:AI智能体(工具连接器)-> MongoDB Atlas向量存储节点。

使用检索器获取文档#

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

一个连接流程的示例(链接示例使用Pinecone,但模式相同)如下:问答链(检索器连接器)-> 向量存储检索器(向量存储连接器)-> MongoDB Atlas向量存储。

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

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

在这种情况下,连接流(链接示例使用了内存向量存储,但模式相同)将如下所示:AI智能体(工具连接器)->向量存储问答工具(向量存储连接器)->内存向量存储。

节点参数#

操作模式#

该向量存储节点具有四种模式:获取多条插入文档检索文档(作为链/工具的向量存储)检索文档(作为AI智能体的工具)。您选择的模式决定了节点可执行的操作以及可用的输入和输出。

获取多个#

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

插入文档#

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

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

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

检索文档(作为AI智能体的工具)#

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

获取多个参数#

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

插入文档参数#

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

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

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

检索文档(作为AI智能体的工具)参数#

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

节点选项#

选项#

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

模板和示例#

浏览MongoDB Atlas向量存储集成模板,或搜索所有模板

参考:

查看n8n的高级AI文档。

自托管AI入门套件#

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

优云智算