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 条件过滤文档。
支持同时使用 AND 和 OR 以及不同的操作符。操作符不区分大小写:
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) 文档。