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.

