集成节点/Built in_nodes/Cluster_nodes/Root_nodes
MongoDB Atlas 向量存储节点#
MongoDB Atlas 向量搜索(Vector Search)是 MongoDB Atlas 的一项功能,允许用户存储和查询向量嵌入(vector embeddings)。使用此节点可以与 MongoDB Atlas 集合中的向量搜索索引进行交互。你可以插入文档、检索文档,并将该向量存储用于链(chains)中或作为智能代理(agents)的工具。
在本页面,你将找到 MongoDB Atlas 向量存储节点的参数说明以及相关资源链接。
凭据
你可以在此处找到该节点的认证信息:MongoDB 凭据文档。
子节点中的参数解析
当使用表达式处理多个数据项时,子节点(sub-nodes)的行为与其他节点不同。
大多数节点(包括根节点)可以接收任意数量的数据项作为输入,逐个处理这些项并输出结果。你可以使用表达式引用输入项,节点会依次为每个输入项解析表达式。例如,若有五个 name 值作为输入,表达式 {{ $json.name }} 会依次解析为每一个名字。
而在子节点中,表达式始终只解析为第一个输入项。例如,即使有五个 name 值输入,表达式 {{ $json.name }} 也总是解析为第一个名字。
前提条件#
在使用此节点之前,请先在你的 MongoDB Atlas 集合中创建一个 向量搜索索引(Vector Search index)。创建步骤如下:
- 登录 MongoDB Atlas 控制台。
- 选择你的组织和项目。
- 找到“Search & Vector Search”部分。
- 选择你的集群并点击“Go to search”。
- 点击“Create Search Index”。
- 选择“Vector Search”模式,并使用可视化编辑器或 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. 为索引起名并创建。
请务必记录以下在配置节点时必需的信息:
* 集合名称(Collection name)
* 向量索引名称(Vector index name)
* 用于嵌入向量和元数据的字段名(Field names for embeddings and metadata)
## 节点使用模式#
你可以通过以下几种模式使用 MongoDB Atlas 向量存储(MongoDB Atlas Vector Store)节点:
### 作为常规节点插入和检索文档#
你可以将 MongoDB Atlas 向量存储节点作为常规节点,用于插入或获取文档。这种模式下,该节点位于标准的连接流程中,不依赖 AI Agent。
你可以在 此模板 的场景 1 中看到一个示例(该模板使用的是 Supabase 向量存储,但使用模式相同)。
### 直接作为工具连接到 AI Agent#
你可以将 MongoDB Atlas 向量存储节点直接连接到 AI Agent 的工具(tools)连接器上,使向量存储在回答查询时作为资源使用。
此时的连接方式为:AI Agent(tools 连接器) → MongoDB Atlas 向量存储节点。
### 使用检索器(Retriever)获取文档#
你可以将 向量存储检索器(Vector Store Retriever) 节点与 MongoDB Atlas 向量存储节点结合使用,从后者中提取文档。这种模式通常与 问答链(Question and Answer Chain) 节点配合使用,以从向量存储中检索出与给定聊天输入相匹配的文档。
连接流程的一个示例(该示例使用 Pinecone,但模式一致)如下:
问答链(Retriever 连接器) → 向量存储检索器(Vector Store 连接器) → MongoDB Atlas 向量存储。
### 使用向量存储问答工具(Vector Store Question Answer Tool)回答问题#
另一种模式是使用 向量存储问答工具(Vector Store Question Answer Tool) 来总结结果并回答来自 MongoDB Atlas 向量存储节点的问题。与直接将向量存储作为工具不同,此模式使用专门设计用于总结向量存储中数据的工具节点。
连接流程示例(该示例使用内存向量存储 In-Memory Vector Store,但模式相同)如下:
AI Agent(tools 连接器) → 向量存储问答工具(Vector Store 连接器) → 内存向量存储(In-Memory Vector Store)。
---
## 节点参数#
### 操作模式(Operation Mode)#
该向量存储节点包含四种模式:**Get Many**、**Insert Documents**、**Retrieve Documents (As Vector Store for Chain/Tool)** 和 **Retrieve Documents (As Tool for AI Agent)**。所选模式决定了节点可执行的操作以及可用的输入和输出。
#### Get Many#
在此模式下,你可以通过提供提示词(prompt)从向量数据库中检索多个文档。提示词会被嵌入(embedding),并用于相似性搜索。节点返回与提示词最相似的文档及其相似度得分。当你希望获取一组相似文档并将其作为额外上下文传递给 Agent 时,此模式非常有用。
#### Insert Documents#
使用“插入文档”模式将新文档插入你的向量数据库。
#### Retrieve Documents (as Vector Store for Chain/Tool)#
使用“Retrieve Documents (As Vector Store for Chain/Tool)”模式与向量存储检索器(retriever)配合,从向量数据库中检索文档,并提供给连接到链(Chain)的检索器。在此模式下,你必须将该节点连接到一个检索器节点或根节点。
#### Retrieve Documents (as Tool for AI Agent)#
使用“Retrieve Documents (As Tool for AI Agent)”模式,可在回答查询时将向量存储作为工具资源使用。当 Agent 生成回复时,若问题内容与向量存储的名称和描述匹配,则会调用该向量存储。
### 重新排序结果(Rerank Results)#
启用 结果重排序(reranking) 功能。启用此选项后,你必须将一个重排序节点连接到向量存储节点,该节点会对查询结果进行重新排序。此功能可用于 `Get Many`、`Retrieve Documents (As Vector Store for Chain/Tool)` 和 `Retrieve Documents (As Tool for AI Agent)` 模式。
### Get Many 参数#
* **Mongo Collection**:输入要使用的 MongoDB 集合名称。
* **Vector Index Name**:输入 MongoDB Atlas 集合中的向量搜索索引名称。
* **Embedding Field**:输入文档中包含向量嵌入(vector embeddings)的字段名。
* **Metadata Field**:输入文档中包含文本元数据(text metadata)的字段名。
### 插入文档参数#
* **Mongo Collection(MongoDB 集合)** : 输入要使用的 MongoDB 集合名称。
* **Vector Index Name(向量索引名称)** : 输入 MongoDB Atlas 集合中向量搜索索引的名称。
* **Embedding Field(嵌入字段)** : 输入文档中包含向量嵌入(vector embeddings)的字段名称。
* **Metadata Field(元数据字段)** : 输入文档中包含文本元数据(text metadata)的字段名称。
### 检索文档参数(作为链/工具的向量存储)#
* **Mongo Collection(MongoDB 集合)** : 输入要使用的 MongoDB 集合名称。
* **Vector Index Name(向量索引名称)** : 输入 MongoDB Atlas 集合中向量搜索索引的名称。
* **Embedding Field(嵌入字段)** : 输入文档中包含向量嵌入(vector embeddings)的字段名称。
* **Metadata Field(元数据字段)** : 输入文档中包含文本元数据(text metadata)的字段名称。
### 检索文档(作为 AI Agent 的工具)参数#
* **Name(名称)** : 向量存储的名称。
* **Description(描述)** : 向大语言模型(LLM)说明此工具的功能。清晰且具体的描述有助于 LLM 更稳定地生成预期结果。
* **Mongo Collection(MongoDB 集合)** : 输入要使用的 MongoDB 集合名称。
* **Vector Index Name(向量索引名称)** : 输入 MongoDB Atlas 集合中向量搜索索引的名称。
* **Limit(限制)** : 设置从向量存储中检索的结果数量。例如,设置为 `10` 可获取最相关的 10 条结果。
## 节点选项#
### 选项#
* **Metadata Filter(元数据过滤器)** : 根据元数据对结果进行过滤。
## 模板与示例#
**基于 AI 的 WhatsApp 聊天机器人,支持文本、语音、图像和 PDF,并集成 RAG**
由 NovaNode 提供
查看模板详情
**使用 OpenAI、RAG 和 MongoDB 向量嵌入构建知识库聊天机器人**
由 NovaNode 提供
查看模板详情
**构建集成强化学习人类反馈(RLHF)与 RAG 的聊天机器人**
由 NovaNode 提供
查看模板详情
浏览 MongoDB Atlas 向量存储集成模板,或搜索所有模板
## 相关资源#
参考:
* LangChain 的 MongoDB Atlas 向量搜索文档,了解有关该服务的更多信息。
* MongoDB Atlas 向量搜索文档,了解有关 MongoDB Atlas 向量搜索的更多细节。
查看 n8n 的 高级 AI 文档。
## 自托管 AI 入门套件#
刚开始接触 AI 并使用自托管 n8n?尝试 n8n 的 自托管 AI 入门套件,使用 Ollama、Qdrant 和 PostgreSQL 快速搭建概念验证或演示环境。