N8N中文教程
集成节点/Built in_nodes/Cluster_nodes/Root_nodes

Weaviate 向量存储节点#

使用 Weaviate 节点将你的 Weaviate 集合作为 向量存储(vector store) 进行交互。你可以向向量数据库中插入文档或从中检索文档。你还可以检索文档并将其提供给连接到 链(chain) 的检索器,或者直接将此节点连接到 AI 智能体(agent),作为 工具(tool) 使用。在本页面上,你可以找到 Weaviate 节点的参数设置以及更多资源链接。

凭据

有关此节点的认证信息,请参见此处。

子节点中的参数解析

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

大多数节点(包括根节点)可以接收任意数量的数据项作为输入,逐个处理这些项,并输出结果。你可以使用表达式引用输入项,节点会依次为每个输入项解析该表达式。例如,若有五个 name 值作为输入,表达式 {{ $json.name }} 会依次解析为每一个名字。

而在子节点中,表达式始终解析为第一个输入项。例如,同样有五个 name 值作为输入,表达式 {{ $json.name }} 始终解析为第一个名字。

节点使用模式#

你可以通过以下几种方式使用 Weaviate 向量存储节点。

作为普通节点插入和检索文档#

你可以将 Weaviate 向量存储节点作为普通节点来插入或获取文档。这种模式下,Weaviate 向量存储节点处于常规连接流程中,不依赖 AI 智能体。

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

你可以将 Weaviate 向量存储节点直接连接到 AI 智能体(AI agent) 的工具连接器(tools connector),以便在回答查询时利用向量存储作为外部资源。

此时的连接路径为:AI 智能体(工具连接器) -> Weaviate 向量存储节点。

使用检索器获取文档#

你可以将 向量存储检索器(Vector Store Retriever) 节点与 Weaviate 向量存储节点结合使用,从后者中提取文档。这种方式通常与 问答链(Question and Answer Chain) 节点配合使用,用于从向量存储中检索与给定聊天输入相匹配的文档。

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

另一种模式是使用 向量存储问答工具(Vector Store Question Answer Tool) 对 Weaviate 向量存储节点中的结果进行总结并回答问题。与直接将 Weaviate 向量存储作为工具不同,此模式使用专门设计用于汇总向量存储中数据的工具。

节点参数#

多租户支持(Multitenancy)

你可以将同一集合中的数据按独立租户隔离(例如,为不同客户划分)。为此,在插入和检索对象时,必须始终提供 租户名称(Tenant Name)。在 Weaviate 官方文档中了解更多关于多租户的信息。

操作模式#

该向量存储节点包含四种模式:获取多个(Get Many)插入文档(Insert Documents)检索文档(作为链/工具的向量存储)(Retrieve Documents (As Vector Store for Chain/Tool))检索文档(作为 AI 智能体的工具)(Retrieve Documents (As Tool for AI Agent))。所选模式决定了你可以执行的操作以及可用的输入和输出。

获取多个(Get Many)#

在此模式下,你可以通过提供提示词(prompt)从向量数据库中检索多个文档。系统会将提示词嵌入并向量化,用于相似性搜索。节点返回与提示最相似的文档及其相似度得分。当你希望获取一组相似文档并将其传递给智能体作为额外上下文时,此功能非常有用。

插入文档(Insert Documents)#

使用“插入文档”模式可将新文档插入到你的向量数据库中。

检索文档(作为链/工具的向量存储)(Retrieve Documents (as Vector Store for Chain/Tool))

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

检索文档(作为 AI 智能体的工具)(Retrieve Documents (as Tool for AI Agent))

使用“检索文档(作为 AI 智能体的工具)”模式,可在回答查询时将向量存储作为工具资源使用。当智能体生成回复时,若问题内容与向量存储的名称和描述相匹配,则会调用该向量存储。

获取多个(Get Many)参数#

  • Weaviate 集合(Weaviate Collection):输入要使用的 Weaviate 集合名称。
  • 提示词(Prompt):输入搜索查询。
  • 限制数量(Limit):设置从向量存储中检索的结果数量。例如,设为 10 可获取最相关的前十条结果。

插入文档参数#

  • Weaviate 集合(Weaviate Collection) : 输入要使用的 Weaviate 集合名称。
  • 嵌入批次大小(Embedding Batch Size) : 单次批次中要嵌入的文档数量。默认值为 200 个文档。

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

  • Weaviate 集合(Weaviate Collection) : 输入要使用的 Weaviate 集合名称。

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

  • Weaviate 集合(Weaviate Collection) : 向量存储的名称。
  • 描述(Description) : 向大语言模型(LLM)说明此工具的功能。清晰且具体的描述有助于 LLM 更频繁地生成符合预期的结果。
  • Weaviate 集合(Weaviate Collection) : 输入要使用的 Weaviate 集合名称。
  • 限制(Limit) : 设置从向量存储中检索的结果数量。例如,设置为 10 可获取最相关的前十条结果。

包含元数据#

是否包含文档的元数据(metadata)。 此选项可用于 获取多个 和 检索文档(作为 AI Agent 的工具) 模式。

重新排序结果#

启用 结果重排序(reranking) 功能。如果启用此选项,必须将一个重排序节点连接到向量数据库(vector store)。该节点将对查询结果进行重新排序。此选项可用于 获取多个检索文档(作为 Chain/Tool 的向量存储)检索文档(作为 AI Agent 的工具) 模式。

节点选项#

搜索过滤器#

在 获取多个、检索文档(作为 Chain/Tool 的向量存储) 和 检索文档(作为 AI Agent 的工具) 操作模式下可用。

在搜索数据时,使用此功能匹配与文档关联的元数据。有关操作符和查询结构的更多信息,请参阅 Weaviate 条件过滤文档。

支持同时使用 ANDOR 以及不同的操作符。操作符不区分大小写:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14

| ``` { "OR":[ { "path":["source"], "operator":"Equal", "valueString":"source1" }, { "path":["source"], "operator":"Equal", "valueString":"source1" } ] }


---|---
支持的操作符:
操作符 | 所需字段 | 说明
---|---|---
`'equal'` |  `valueString` 或 `valueNumber` | 检查属性是否等于给定的字符串或数字。
`'like'` | `valueString` | 检查字符串属性是否匹配某个模式(例如子字符串匹配)。
`'containsAny'` |  `valueTextArray` (string[]) | 检查属性是否包含给定值中的**任意一个**。
`'containsAll'` |  `valueTextArray` (string[]) | 检查属性是否包含给定值中的**全部**。
`'greaterThan'` | `valueNumber` | 检查属性值是否大于给定数字。
`'lessThan'` | `valueNumber` | 检查属性值是否小于给定数字。
`'isNull'` |  `valueBoolean` (true/false) | 检查属性是否为 null。(必须在数据摄入前启用)
`'withinGeoRange'` |  `valueGeoCoordinates` (包含地理位置数据的对象) | 根据与地理坐标的距离进行筛选。
插入数据时,文档加载器会设置元数据。有关加载文档的更多信息,请参考 默认数据加载器。
### 元数据键(Metadata Keys)#
您可以定义希望 Weaviate 在查询中返回哪些元数据键。这可以减少网络负载,因为您只会获取已定义的属性。默认情况下会从服务器返回所有属性。
适用于 获取多个(Get Many)、检索文档(作为链/工具的向量存储) 和 检索文档(作为 AI Agent 的工具) 操作模式。
### 租户名称(Tenant Name)#
用于存储或检索文档的特定租户。
创建时必须启用
您必须在首次数据摄入时传入租户名称,以启用集合的多租户功能。创建后无法再启用或禁用多租户。
### 文本键(Text Key)#
文档中包含嵌入文本的键名。
### 跳过初始化检查(Skip Init Checks)#
实例化客户端时是否跳过初始化检查。
### 初始化超时时间(Init Timeout)#
初始检查期间等待多少秒后超时。
### 插入超时时间(Insert Timeout)#
插入数据期间等待多少秒后超时。
### 查询超时时间(Query Timeout)#
查询期间等待多少秒后超时。
### GRPC 代理(GRPC Proxy)#
用于 gRPC 请求的代理。
### 清除数据(Clear Data)#
适用于 插入文档(Insert Documents) 操作模式。
是否在插入新数据前清空集合或租户。
## 模板与示例 #
**使用 arXiv 和 Weaviate 构建每周 AI 趋势提醒器**
作者:Mary Newhauser
查看模板详情

**使用 Mistral OCR 和 Weaviate DB 构建 PDF 搜索系统**
作者:Dietmar
查看模板详情

**基于 RAG 的文档问答:使用 Weaviate 和 OpenAI 查询 PDF 内容**
作者:Mary Newhauser
查看模板详情

Browse Weaviate Vector Store integration templates,或 搜索所有模板

## 相关资源 #
更多服务信息,请参考 LangChain 的 Weaviate 文档。
如需自托管 Weaviate 集群,请参考 Weaviate 安装指南。
查看 n8n 的 高级 AI(Advanced AI) 文档。