MongoDB Atlas 向量存储节点#
MongoDB Atlas 向量搜索是 MongoDB Atlas 的一项功能,支持用户存储和查询向量嵌入。通过此节点可与 MongoDB Atlas 集合中的向量搜索索引进行交互,实现文档插入、文档检索功能,并可在链中使用该向量存储或将其作为智能体工具。
凭证认证
该节点的身份验证信息请查阅此处。
子节点参数解析
在使用表达式处理多项数据时,子节点的运行机制与其他节点存在差异。
多数节点(包括根节点)可接收任意数量的输入项,经处理后输出结果。您可通过表达式引用输入项,节点会依次对每个数据项进行表达式解析。例如当输入五个name值时,表达式{{ $json.name }}将依次解析每个名称。
而在子节点中,表达式始终仅解析首项数据。例如当输入五个name值时,表达式{{ $json.name }}将始终解析第一个名称。
前置准备#
使用本节点前,请先在 MongoDB Atlas 集合中创建向量搜索索引。创建步骤如下:
-
选择您的组织与项目
-
定位"搜索与向量搜索"功能区
-
选择目标集群并点击"进入搜索"
-
点击"创建搜索索引"
-
选择"向量搜索"模式,使用可视化编辑器或 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>" } ] }
- 根据您的嵌入模型调整"dimensions"数值(例如,OpenAI的
text-embedding-small-3对应1536)。 - 为索引命名并完成创建。
配置节点时请务必记录以下必需参数:
- 集合名称
- 向量索引名称
- 嵌入字段和元数据字段名称
节点使用模式#
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智能体的工具)。所选模式决定了节点可执行的操作以及可用的输入输出。
获取多条#
此模式下可通过提示词从向量数据库检索多个文档。提示词经嵌入后用于相似性搜索,节点返回与提示词最相似的文档及其相似度评分。适用于需要检索相似文档列表并传递给智能体作为附加上下文的场景。
插入文档#
使用插入文档模式向向量数据库插入新文档。
检索文档(作为链/工具的向量存储)#
此模式需与向量存储检索器配合使用,从向量数据库检索文档并提供给连接到链的检索器。此模式下必须将节点连接到检索器节点或根节点。