跳到主要内容

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": "<field-name>", "numDimensions": 1536, // any other value "similarity": "<similarity-function>" } ] }

  1. 根据您的嵌入模型调整"dimensions"数值(例如,OpenAI的text-embedding-small-3对应1536)。
  2. 为索引命名并完成创建。

配置节点时请务必记录以下必需参数:

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

节点使用模式#

MongoDB Atlas向量存储节点支持以下使用模式:

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

可将MongoDB Atlas向量存储作为常规节点进行文档插入或获取操作。此模式将MongoDB Atlas向量存储置于常规连接流中,无需使用智能体。

可参考此模板的场景1示例(该模板使用Supabase向量存储,但模式相同)。

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

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

此时连接方式为:AI智能体(工具连接器)-> MongoDB Atlas向量存储节点。

使用检索器获取文档#

可通过向量存储检索器节点与MongoDB Atlas向量存储节点配合,从MongoDB Atlas向量存储节点获取文档。此模式常与问答链节点配合使用,获取与聊天输入匹配的向量存储文档。

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

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

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

此情况下的连接流程(链接示例使用内存向量存储,但模式相同)为:AI智能体(工具连接器)-> 向量存储问答工具(向量存储连接器)-> 内存向量存储。

节点参数#

操作模式#

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

获取多条#

此模式下可通过提示词从向量数据库检索多个文档。提示词经嵌入后用于相似性搜索,节点返回与提示词最相似的文档及其相似度评分。适用于需要检索相似文档列表并传递给智能体作为附加上下文的场景。

插入文档#

使用插入文档模式向向量数据库插入新文档。

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

此模式需与向量存储检索器配合使用,从向量数据库检索文档并提供给连接到链的检索器。此模式下必须将节点连接到检索器节点或根节点。

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

此模式将向量存储作为工具资源用于查询应答。当向量存储名称和描述与问题细节匹配时,智能体在构建响应时会使用该向量存储。

重排结果#

启用重排功能。启用后需将重排节点连接到向量存储,该节点将对查询结果进行重排。此选项适用于获取多条检索文档(作为链/工具的向量存储)检索文档(作为AI智能体的工具)模式。

获取多条参数#

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

插入文档参数#

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

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

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

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

  • 名称:向量存储的名称
  • 描述:向LLM说明此工具的功能。准确具体的描述有助于LLM更频繁地生成预期结果
  • Mongo集合:输入要使用的MongoDB集合名称
  • 向量索引名称:输入MongoDB Atlas集合中的向量搜索索引名称
  • 限制:设置从向量存储检索的结果数量。例如设为10可获取最佳匹配的10个结果

节点选项#

选项#

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

模板与示例#

支持RAG的AI驱动WhatsApp聊天机器人(文本/语音/图像/PDF) 作者:NovaNode 查看模板详情

使用OpenAI、RAG和MongoDB向量嵌入构建知识库聊天机器人 作者:NovaNode 查看模板详情

使用强化学习人类反馈(RLHF)和RAG构建聊天机器人 作者:NovaNode 查看模板详情

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

相关资源#

参考:

查看n8n的高级AI文档。

自托管AI入门套件#

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