PGVector Vector Store#
PGVector is an extension of Postgresql. Use this node to interact with the PGVector tables in your Postgresql database. You can insert documents into a vector table, get documents from a vector table, and retrieve documents to provide them to a retriever connected to a chain.
On this page, you'll find the node parameters for the PGVector node, and links to more resources.
Credentials
You can find authentication information for this node here.
Parameter resolution in sub-nodes
Sub-nodes behave differently to other nodes when processing multiple items using an expression.
Most nodes, including root nodes, take any number of items as input, process these items, and output the results. You can use expressions to refer to input items, and the node resolves the expression for each item in turn. For example, given an input of five name
values, the expression {{ $json.name }}
resolves to each name in turn.
In sub-nodes, the expression always resolves to the first item. For example, given an input of five name
values, the expression {{ $json.name }}
always resolves to the first name.
Node parameters#
Operation Mode#
Vector Store nodes in n8n have three modes: Get Many, Insert Documents, and Retrieve Documents. The mode you select determines the operations you can perform with the node and what inputs and outputs are available.
Get Many#
In this mode, you can retrieve multiple documents from your vector database by providing a prompt. The prompt will be embedded and used for similarity search. The node will return the documents that are most similar to the prompt with their similarity score. This is useful if you want to retrieve a list of similar documents and pass them to an agent as additional context.
Insert Documents#
Use Insert Documents mode to insert new documents into your vector database.
Retrieve Documents (For Agent/Chain)#
Use Retrieve Documents mode with a vector-store retriever to retrieve documents from a vector database and provide them to the retriever connected to a chain. In this mode you must connect the node to a retriever node or root node.
Get Many parameters#
- Table name: Enter the name of the table you want to query.
- Prompt: Enter your search query.
- Limit: Enter a number to set how many results to retrieve from the vector store. For example, set this to
10
to get the ten best results.
Insert Documents parameters#
- Table name: Enter the name of the table you want to query.
Retrieve Documents parameters (for Agent/Chain)#
- Table name: Enter the name of the table you want to query.
Node options#
Collection#
A way to separate datasets in PGVector. This creates a separate table and column to keep track of which collection a vector belongs to.
- Use Collection: Select whether to use a collection (turned on) or not (turned off).
- Collection Name: Enter the name of the collection you want to use.
- Collection Table Name: Enter the name of the table to store collection information in.
Column Names#
The following options specify the names of the columns to store the vectors and corresponding information in:
- ID Column Name
- Vector Column Name
- Content Column Name
- Metadata Column Name
Metadata Filter#
Available in Get Many mode. When searching for data, use this to match with metadata associated with the document.
This is an AND
query. If you specify more than one metadata filter field, all of them must match.
When inserting data, the metadata is set using the document loader. Refer to Default Data Loader for more information on loading documents.
Templates and examples#
Related resources#
Refer to LangChain's PGVector documentation for more information about the service.
View n8n's Advanced AI documentation.
Self-hosted AI Starter Kit#
New to working with AI and using self-hosted n8n? Try n8n's self-hosted AI Starter Kit to get started with a proof-of-concept or demo playground using Ollama, Qdrant, and PostgreSQL.