跳到主要内容

Weaviate 向量存储节点#

使用 Weaviate 节点可将您的 Weaviate 集合作为向量存储进行交互。您可以向向量数据库插入文档或从中检索文档。还可以检索文档以提供给连接到的检索器,或直接将此节点连接到智能体作为工具使用。 本页将介绍 Weaviate 节点的参数配置,并附上相关资源链接。

凭证认证

此节点的身份验证信息请参阅此处

子节点中的参数解析

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

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

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

节点使用模式#

Weaviate 向量存储节点支持以下使用模式。

作为常规节点插入和检索文档#

可将 Weaviate 向量存储作为常规节点进行文档插入或获取操作。此模式将 Weaviate 向量存储置于常规连接流中,无需使用智能体。

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

可将 Weaviate 向量存储节点直接连接到 AI 智能体 的工具连接器,在应答查询时将向量存储作为资源使用。

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

使用检索器获取文档#

可将 向量存储检索器 节点与 Weaviate 向量存储节点配合使用,从 Weaviate 向量存储节点获取文档。此模式常与 问答链 节点结合使用,从向量存储中获取与指定聊天输入匹配的文档。

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

另一种模式使用 向量存储问答工具 对 Weaviate 向量存储节点的结果进行汇总并解答问题。该模式并非直接将 Weaviate 向量存储作为工具连接,而是使用专门设计的工具来汇总向量存储中的数据。

节点参数#

多租户支持

您可以将数据隔离到同一集合的不同租户中(例如针对不同客户)。实现此功能时,在插入和检索对象时必须始终提供 租户名称查阅 Weaviate 文档中关于多租户的详细说明

操作模式#

此向量存储节点提供四种模式:获取多条插入文档检索文档(作为链/工具的向量存储)检索文档(作为 AI 智能体的工具)。所选模式将决定节点可执行的操作以及可用的输入输出选项。

获取多条#

在此模式下,可通过提供提示词从向量数据库中检索多个文档。提示词会经过嵌入处理并用于相似性搜索。节点将返回与提示词最相似的文档及其相似度评分。若需检索相似文档列表并将其作为附加上下文传递给智能体,此模式非常实用。

插入文档#

使用插入文档模式可将新文档添加到向量数据库。

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

此模式需与向量存储检索器配合使用,从向量数据库检索文档并提供给连接到链的检索器。在此模式下必须将节点连接到检索器节点或根节点。

检索文档(作为 AI 智能体的工具)#

使用此模式可在应答查询时将向量存储作为工具资源使用。当向量存储名称和描述与问题细节匹配时,智能体会在构建响应时调用向量存储。

获取多条参数#

  • Weaviate 集合:输入要使用的 Weaviate 集合名称
  • 提示词:输入搜索查询语句
  • 数量限制:设置从向量存储中检索的结果数量。例如设置为10可获取最优的十个结果

插入文档参数#

  • Weaviate 集合:输入要使用的 Weaviate 集合名称
  • 嵌入批处理大小:单批次处理的文档嵌入数量,默认为 200 个文档

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

  • Weaviate 集合:输入要使用的 Weaviate 集合名称

检索文档(作为 AI 智能体的工具)参数#

  • Weaviate 集合:向量存储的名称
  • 功能描述:向大语言模型说明此工具的功能。准确具体的描述有助于大语言模型更稳定地输出预期结果
  • Weaviate 集合:输入要使用的 Weaviate 集合名称
  • 数量限制:设置从向量存储中检索的结果数量。例如设置为10可获取最优的十个结果

包含元数据#

是否包含文档元数据。

此选项适用于 获取多条检索文档(作为 AI 智能体的工具) 模式。

重排结果#

启用 重排机制。启用此选项后,必须将重排节点连接到向量存储。该节点将对查询结果进行重新排序。此选项适用于获取多条检索文档(作为链/工具的向量存储)检索文档(作为 AI 智能体的工具)模式。

节点选项#

搜索过滤器#

适用于 获取多条检索文档(作为链/工具的向量存储)检索文档(作为 AI 智能体的工具) 操作模式。

搜索数据时,通过此功能匹配与文档关联的元数据。关于运算符和查询结构的详细信息,请参阅 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'valueStringvalueNumber检查属性是否等于给定字符串或数字。
'like'valueString检查字符串属性是否匹配模式(例如子字符串匹配)。
'containsAny'valueTextArray (字符串数组)检查属性是否包含任意给定值。
'containsAll'valueTextArray (字符串数组)检查属性是否包含所有给定值。
'greaterThan'valueNumber检查属性值是否大于给定数字。
'lessThan'valueNumber检查属性值是否小于给定数字。
'isNull'valueBoolean (true/false)检查属性是否为 null(需在数据摄入前启用)。
'withinGeoRange'valueGeoCoordinates (包含地理坐标数据的对象)根据地理坐标邻近度进行筛选。

插入数据时,文档加载器会设置元数据。有关加载文档的更多信息,请参阅默认数据加载器

元数据键#

您可以定义希望 Weaviate 在查询中返回的元数据键。这可以减少网络负载,因为您只会获得已定义的属性。默认情况下会返回服务器的所有属性。

适用于获取多条检索文档(作为链/工具的向量存储)检索文档(作为 AI 代理的工具)操作模式。

租户名称#

用于存储或检索文档的特定租户。

必须在创建时启用

首次数据摄入时必须传递租户名称才能为集合启用多租户功能。创建后无法启用或禁用多租户。

文本键#

文档中包含嵌入文本的键。

跳过初始化检查#

实例化客户端时是否跳过初始化检查

初始化超时#

初始检查期间超时前的等待秒数。

插入超时#

插入操作期间超时前的等待秒数。

查询超时#

查询操作期间超时前的等待秒数。

GRPC 代理#

用于 gRPC 请求的代理。

清除数据#

适用于插入文档操作模式。

是否在插入新数据前清除集合或租户数据。

模板与示例#

使用 arXiv 和 Weaviate 构建每周 AI 趋势提醒器 作者:Mary Newhauser 查看模板详情

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

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

浏览 Weaviate 向量存储集成模板,或搜索所有模板

相关资源#

有关该服务的更多信息,请参阅 LangChain 的 Weaviate 文档

如需自托管 Weaviate 集群,请参阅 Weaviate 安装指南

查看 n8n 的高级 AI 文档。