PGVector 向量存储节点#
PGVector 是 PostgreSQL 的扩展功能。使用此节点可与 PostgreSQL 数据库中的 PGVector 表进行交互。您可以将文档插入向量表、从向量表获取文档、检索文档以提供给连接到AI链的检索器,或直接作为AI工具连接到AI代理。
本页将介绍 PGVector 节点的参数配置,并提供更多资源链接。
凭据
您可以在此处找到此节点的认证信息。
/// 注意 | 子节点中的参数解析 子节点在使用表达式处理多个项目时的行为与其他节点不同。
大多数节点(包括根节点)会接收任意数量的输入项,处理这些项目,然后输出结果。您可以使用表达式来引用输入项,节点会依次为每个项目解析表达式。例如,给定五个 name
值作为输入,表达式 {{ $json.name }}
会依次解析为每个名称。
而在子节点中,表达式总是解析为第一个项目。例如,给定五个 name
值作为输入,表达式 {{ $json.name }}
总是解析为第一个名称。
///
节点使用模式#
您可以通过以下方式使用 PGVector 向量存储节点。
作为常规节点插入和检索文档#
您可以将 PGVector 向量存储作为常规节点来插入或获取文档。此模式将 PGVector 向量存储置于常规连接流中,而不使用代理。
您可以在此模板的场景1中查看示例(该模板使用 Supabase 向量存储,但模式相同)。
直接作为工具连接到AI代理#
您可以将 PGVector 向量存储节点直接连接到AI代理的工具连接器,在回答查询时将向量存储作为资源使用。
此处的连接方式为:AI代理(工具连接器) -> PGVector 向量存储节点。
使用检索器获取文档#
您可以将 Vector Store Retriever 节点与 PGVector Vector Store 节点结合使用,从 PGVector 向量存储中获取文档。这通常与 Question and Answer Chain 节点一起使用,以从向量存储中获取与给定聊天输入匹配的文档。
连接流程示例(链接示例使用 Pinecone,但模式相同)如下:Question and Answer Chain(Retriever 连接器)-> Vector Store Retriever(Vector Store 连接器)-> PGVector Vector Store。
使用向量存储问答工具回答问题#
另一种模式是使用 Vector Store Question Answer Tool 来汇总结果并回答来自 PGVector Vector Store 节点的问题。这种模式不是直接将 PGVector Vector Store 作为工具连接,而是使用专门设计用于汇总向量存储中数据的工具。
在此情况下的连接流程(链接示例使用 Simple Vector Store,但模式相同)如下所示:AI agent(工具连接器)-> Vector Store Question Answer Tool(Vector Store 连接器)-> Simple Vector store。
节点参数#
操作模式#
该 Vector Store 节点提供四种操作模式:获取多个文档、插入文档、检索文档(作为链/工具的向量存储)和检索文档(作为 AI 代理的工具)。您选择的模式决定了节点可执行的操作以及可用的输入输出选项。
获取多个文档#
在此模式下,您可以通过提供提示词从向量数据库中检索多个文档。提示词将被嵌入并用于相似性搜索。节点将返回与提示词最相似的文档及其相似度分数。当您需要检索相似文档列表并将其作为额外上下文传递给代理时,此模式非常有用。
插入文档#
使用插入文档模式可将新文档存入您的向量数据库。
检索文档(作为链/工具的向量存储)#
将检索文档(作为链/工具的向量存储)模式与向量存储检索器配合使用,可从向量数据库检索文档并将其提供给连接到链的检索器。在此模式下,您必须将节点连接到检索器节点或根节点。
检索文档(作为 AI 代理的工具)#
使用检索文档(作为 AI 代理的工具)模式可在回答查询时将向量存储作为工具资源使用。当向量存储名称和描述与问题细节匹配时,代理在构建响应时会使用该向量存储。
Get Many 参数#
- 表名:输入要查询的表名。
- 提示:输入您的搜索查询。
- 限制:输入一个数字以设置从向量存储中检索多少结果。例如,将此设置为
10
以获取十个最佳结果。
插入文档参数#
- 表名:输入要查询的表名称。
检索文档参数(作为链/工具的向量存储)#
- 表名:输入要查询的表名称。
检索文档(作为AI代理工具)参数#
- 名称:向量存储的名称。
- 描述:向大语言模型解释此工具的功能。一个具体清晰的描述有助于LLM更频繁地产生预期结果。
- 表名:输入要使用的PGVector表。
- 限制:输入要从向量存储中检索的结果数量。例如,设置为
10
可获取最匹配的10个结果。
节点选项#
集合#
在PGVector中分隔数据集的方式。这会创建一个单独的表和列来跟踪向量所属的集合。
- 使用集合:选择是否使用集合(开启)或不使用(关闭)。
- 集合名称:输入要使用的集合名称。
- 集合表名:输入存储集合信息的表名称。
列名#
以下选项指定存储向量及相关信息的列名称:
- ID列名
- 向量列名
- 内容列名
- 元数据列名
元数据过滤器#
在 Get Many 模式下可用。搜索数据时,使用此功能可匹配与文档关联的元数据。
这是一个 AND
查询。如果指定多个元数据筛选字段,则所有字段都必须匹配。
插入数据时,元数据是通过文档加载器设置的。有关加载文档的更多信息,请参阅 默认数据加载器。
模板和示例#
相关资源#
有关该服务的更多信息,请参考 LangChain 的 PGVector 文档。
查看 n8n 的高级 AI 文档。
自托管 AI 入门套件#
初次接触 AI 并使用自托管版 n8n?试试 n8n 的自托管 AI 入门套件,通过 Ollama、Qdrant 和 PostgreSQL 快速搭建概念验证或演示环境。