PGVector 向量存储节点#
PGVector 是 Postgresql 的一个扩展。使用此节点可以与你在 Postgresql 数据库中的 PGVector 表进行交互。你可以将文档插入向量表中,从向量表中获取文档,检索文档以提供给连接到 链(chain) 的检索器(retriever),或直接作为 工具(tool) 连接到 AI 智能体(agent)。
本页面包含 PGVector 节点的参数说明以及相关资源链接。
凭据
你可以在此处找到该节点的身份验证信息。
子节点中的参数解析#
当使用表达式处理多个数据项时,子节点(sub-nodes)的行为与其他节点不同。
大多数节点(包括根节点)可以接收任意数量的数据项作为输入,逐个处理这些数据项并输出结果。你可以使用表达式引用输入项,节点会依次为每个输入项解析表达式。例如,如果有五个 name 值作为输入,表达式 {{ $json.name }} 会依次解析为每一个名称。
而在子节点中,表达式始终解析为第一个输入项。例如,在同样的五个 name 输入下,表达式 {{ $json.name }} 始终指向第一个名称。
节点使用模式#
你可以通过以下几种方式使用 PGVector 向量存储节点。
作为普通节点插入和检索文档#
你可以将 PGVector 向量存储节点作为普通节点来插入或获取文档。这种模式下,PGVector 节点处于常规连接流程中,并不涉及 AI 智能体。
你可以在 这个模板 的场景 1 中看到示例(虽然该模板使用的是 Supabase 向量存储,但使用模式相同)。
直接作为工具连接到 AI 智能体#
你可以将 PGVector 向量存储节点直接连接到 AI 智能体 的“工具”连接口(tools connector),以便在回答查询时利用向量存储作为外部资源。
此时的连接路径为:AI 智能体(工具连接口) -> PGVector 向量存储节点。
使用检索器获取文档#
你可以将 向量存储检索器(Vector Store Retriever) 节点与 PGVector 向量存储节点结合使用,从后者中提取文档。这通常与 问答链(Question and Answer Chain) 节点配合使用,用于从向量存储中检索与聊天输入相匹配的文档。
一个 连接流程示例(该示例使用 Pinecone,但模式一致)如下所示: 问答链(Retriever 连接口) -> 向量存储检索器(Vector Store 连接口) -> PGVector 向量存储。
使用向量存储问答工具回答问题#
另一种模式是使用 向量存储问答工具(Vector Store Question Answer Tool) 来总结结果并从 PGVector 向量存储中回答问题。与直接将向量存储作为工具不同,此模式使用专门设计用于汇总向量存储中数据的工具。
在这种情况下,连接流程(示例中使用的是 Simple Vector Store,但模式相同)如下所示: AI 智能体(工具连接口) -> 向量存储问答工具(Vector Store 连接口) -> Simple 向量存储。
节点参数#
操作模式(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),并用于相似性搜索。节点返回与提示最相似的文档及其相似度得分。当你希望获取一组相似文档并将其作为额外上下文传递给智能体时,此功能非常有用。
Insert Documents#
使用“插入文档”模式将新文档插入你的向量数据库。
Retrieve Documents (as Vector Store for Chain/Tool)#
将“检索文档(作为链/工具的向量存储)”模式与向量存储检索器(vector-store retriever)一起使用,从向量数据库中检索文档,并提供给连接到链的检索器。在此模式下,必须将该节点连接到一个检索器节点或根节点。
Retrieve Documents (as Tool for AI Agent)#
使用“检索文档(作为 AI 智能体的工具)”模式,在回答查询时将向量存储作为工具资源。当智能体生成回复时,若问题内容与向量存储的名称和描述匹配,则会调用该向量存储。
重排序结果(Rerank Results)#
启用 重排序(reranking) 功能。如果启用此选项,必须连接一个重排序节点到向量存储节点,该节点会对查询结果进行重新排序。此选项可用于 Get Many、Retrieve Documents (As Vector Store for Chain/Tool) 和 Retrieve Documents (As Tool for AI Agent) 模式。
Get Many 参数#
- 表名(Table name):输入你要查询的表的名称。
- 提示(Prompt):输入你的搜索查询内容。
- 限制(Limit):输入一个数值,设置从向量存储中检索的结果数量。例如,设置为
10可获得最相关的前十条结果。
插入文档参数#
- 表名(Table name):输入你要查询的表的名称。
检索文档参数(作为链/工具的向量存储)#
- 表名(Table name):输入你要查询的表的名称。
检索文档(作为 AI Agent 的工具)参数#
- 名称(Name):向量存储的名称。
- 描述(Description):向大语言模型(LLM)说明此工具的功能。清晰且具体的描述有助于 LLM 更频繁地生成符合预期的结果。
- 表名(Table Name):输入要使用的 PGVector 表。
- 限制数量(Limit):设置从向量存储中检索的结果数量。例如,设置为
10可获取最相关的十个结果。
节点选项#
集合(Collection)#
用于在 PGVector 中分离数据集的方式。这会创建一个独立的表和列,以追踪每个向量所属的集合。
- 使用集合(Use Collection):选择是否启用集合(开启)或不使用(关闭)。
- 集合名称(Collection Name):输入要使用的集合名称。
- 集合表名(Collection Table Name):输入用于存储集合信息的表名称。
列名(Column Names)#
以下选项用于指定存储向量及其相关信息的列名称:
- ID 列名(ID Column Name)
- 向量列名(Vector Column Name)
- 内容列名(Content Column Name)
- 元数据列名(Metadata Column Name)
元数据过滤器#
在 获取多个(Get Many) 模式下可用。在搜索数据时,使用此功能匹配与文档关联的元数据。
这是一个 AND 查询:如果指定了多个元数据过滤字段,则所有条件都必须匹配。
在插入数据时,元数据由文档加载器(document loader)设置。有关文档加载的更多信息,请参考 默认文档加载器。
模板与示例#
带音频转录功能的人力资源与IT帮助台聊天机器人 作者:Felipe Braga 查看模板详情
在可视化参考库中探索 n8n 节点 作者:I versus AI 查看模板详情
📥 将 Google Drive 文档转换为向量嵌入 作者:Alex Kim 查看模板详情
浏览 PGVector 向量存储集成模板,或 搜索所有模板
相关资源#
更多服务信息,请参阅 LangChain 的 PGVector 文档。 查看 n8n 的 高级 AI 文档。
自托管 AI 入门套件#
刚开始接触 AI 并使用自托管的 n8n?尝试 n8n 的 自托管 AI 入门套件,使用 Ollama、Qdrant 和 PostgreSQL 快速搭建概念验证(proof-of-concept)或演示环境。