Vector Stores
Vectorstores
PrivateGPT supports Qdrant, Milvus, Chroma, PGVector and ClickHouse as vectorstore providers. Qdrant being the default.
In order to select one or the other, set the vectorstore.database
property in the settings.yaml
file to qdrant
, milvus
, chroma
, postgres
and clickhouse
.
Qdrant configuration
To enable Qdrant, set the vectorstore.database
property in the settings.yaml
file to qdrant
.
Qdrant settings can be configured by setting values to the qdrant
property in the settings.yaml
file.
The available configuration options are:
By default Qdrant tries to connect to an instance of Qdrant server at http://localhost:3000
.
To obtain a local setup (disk-based database) without running a Qdrant server, configure the qdrant.path
value in settings.yaml:
Milvus configuration
To enable Milvus, set the vectorstore.database
property in the settings.yaml
file to milvus
and install the milvus
extra.
The available configuration options are:
To obtain a local setup (disk-based database) without running a Milvus server, configure the uri value in settings.yaml, to store in local_data/private_gpt/milvus/milvus_local.db.
Chroma configuration
To enable Chroma, set the vectorstore.database
property in the settings.yaml
file to chroma
and install the chroma
extra.
By default chroma
will use a disk-based database stored in local_data_path / “chroma_db” (being local_data_path defined in settings.yaml)
PGVector
To use the PGVector store a postgreSQL database with the PGVector extension must be used.
To enable PGVector, set the vectorstore.database
property in the settings.yaml
file to postgres
and install the vector-stores-postgres
extra.
PGVector settings can be configured by setting values to the postgres
property in the settings.yaml
file.
The available configuration options are:
For example:
The following table will be created in the database
The dimensions of the embeddings columns will be set based on the embedding.embed_dim
value. If the embedding model changes this table may need to be dropped and recreated to avoid a dimension mismatch.
ClickHouse
To utilize ClickHouse as the vector store, a ClickHouse database must be employed.
To enable ClickHouse, set the vectorstore.database
property in the settings.yaml
file to clickhouse
and install the vector-stores-clickhouse
extra.
ClickHouse settings can be configured by setting values to the clickhouse
property in the settings.yaml
file.
The available configuration options are:
For example:
The following table will be created in the database:
The dimensions of the embeddings columns will be set based on the embedding.embed_dim
value. If the embedding model changes, this table may need to be dropped and recreated to avoid a dimension mismatch.