跳转至

MongoDB Atlas 向量存储节点#

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

在此页面上,您将找到 MongoDB Atlas 向量存储节点的节点参数和更多资源的链接。

凭证

您可以在这里找到此节点的身份验证信息。

子节点中的参数解析

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

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

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

先决条件#

使用此节点之前,请在您的 MongoDB Atlas 集合中创建一个 Vector Search 索引。请按照以下步骤创建:

  1. 登录到 MongoDB Atlas 仪表板

  2. 选择您的组织和项目。

  3. 找到"Search & Vector Search"部分。
  4. 选择您的集群并点击"Go to search"。
  5. 点击"Create Search Index"。
  6. 选择"Vector Search"模式并使用可视化或 JSON 编辑器。例如:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    {
      "fields": [
        {
          "type": "vector",
          "path": "<field-name>",
          "numDimensions": 1536, // 任何其他值
          "similarity": "<similarity-function>"
        }
      ]
    }
    

  7. 根据您的嵌入模型调整"dimensions"值(例如,OpenAI 的 text-embedding-small-31536)。

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

请确保记录以下在配置节点时需要的值:

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

节点使用模式#

您可以通过以下模式使用 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 代理的工具)模式在回答查询时将向量存储用作工具资源。在制定响应时,当向量存储名称和描述与问题详细信息匹配时,代理会使用向量存储。

重新排序结果#

启用重新排序。如果您启用此选项,必须将重新排序节点连接到向量存储。该节点然后将对查询结果进行重新排序。您可以在 获取多个检索文档(作为链/工具的向量存储)检索文档(作为 AI 代理的工具) 模式下使用此选项。

获取多个参数#

  • Mongo Collection:输入要使用的 MongoDB 集合名称。
  • Vector Index Name:输入您的 MongoDB Atlas 集合中 Vector Search 索引的名称。
  • Embedding Field:输入文档中包含向量嵌入的字段名称。
  • Metadata Field:输入文档中包含文本元数据的字段名称。

插入文档参数#

  • Mongo Collection:输入要使用的 MongoDB 集合名称。
  • Vector Index Name:输入您的 MongoDB Atlas 集合中 Vector Search 索引的名称。
  • Embedding Field:输入文档中包含向量嵌入的字段名称。
  • Metadata Field:输入文档中包含文本元数据的字段名称。

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

  • Mongo Collection:输入要使用的 MongoDB 集合名称。
  • Vector Index Name:输入您的 MongoDB Atlas 集合中 Vector Search 索引的名称。
  • Embedding Field:输入文档中包含向量嵌入的字段名称。
  • Metadata Field:输入文档中包含文本元数据的字段名称。

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

  • Name:向量存储的名称。
  • Description:向 LLM 解释此工具的作用。良好、具体的描述能让 LLM 更频繁地产生预期结果。
  • Mongo Collection:输入要使用的 MongoDB 集合名称。
  • Vector Index Name:输入您的 MongoDB Atlas 集合中 Vector Search 索引的名称。
  • Limit:输入要从向量存储中检索的结果数量。例如,将此设置为10可获得十个最佳结果。

节点选项#

选项#

  • Metadata Filter:基于元数据过滤结果。

模板和示例#

AI-Powered WhatsApp Chatbot for Text, Voice, Images, and PDF with RAG

by NovaNode

View template details
Build a Knowledge Base Chatbot with OpenAI, RAG and MongoDB Vector Embeddings

by NovaNode

View template details
Build a Chatbot with Reinforced Learning Human Feedback (RLHF) and RAG

by NovaNode

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

相关资源#

请参考:

查看 n8n 的高级 AI 文档。

自托管 AI 入门套件#

刚开始使用 AI 和自托管 n8n?试试 n8n 的自托管 AI 入门套件,使用 Ollama、Qdrant 和 PostgreSQL 开始构建概念验证或演示环境。

此页面是否
💬 微信

🚀 与作者交流

关注公众号
n8n实战笔记公众号
n8n实战笔记
📚 教程 💡 案例 🔧 技巧
添加微信
添加作者微信
1对1 专业指导
⚡ 快答 🎯 定制 🚀 支持