Storage Providers
Wagtail Vector Index supports multiple storage providers for storage and querying of content embeddings.
The vector backend can be configured using the WAGTAIL_VECTOR_INDEX_STORAGE_PROVIDERS setting:
WAGTAIL_VECTOR_INDEX_STORAGE_PROVIDERS = {
"default": {
"STORAGE_PROVIDER": "wagtail_vector_index.storage.pgvector.PgvectorStorageProvider",
}
}
NumPy Provider
Warning
The numpy based provider is not recommended for production use and large databases because it is not designed to scale. It is a good starting point for local experimentation due to not requiring any additional services to be set up.
The Numpy provider is the default provider, but can be configured explicitly with:
WAGTAIL_VECTOR_INDEX_STORAGE_PROVIDERS = {
"default": {
"STORAGE_PROVIDER": "wagtail_vector_index.storage.numpy.NumpyBackend",
}
}
It does not need any additional processes to work, but it does require the
numpy package to be installed. We recommend you do that by installing
Wagtail Vector Index with an optional dependency:
This provide siterates through each embedding in the database, running similarity checks against content in-memory. This may be useful for small sets of content, but will likely be slow and consume large amounts of memory as the size of indexed content increases. For this reason it is not recommended for production use.
pgvector Provider
This provider makes use of the pgvector extension in the Postgres database. This may be a good option if you already use a Postgres database and do not want to add more services to your infrastructure.
Warning
This provider won't work with non-PostgreSQL databases but you might see no errors (it will fail silently). It's advised to use Postgres across all your environments (including local development environment) if you use the pgvector provider.
You must ensure your Postgres instance supports the pgvector extension. To use this backend, you should install Wagtail Vector Index with an optional dependency:
To configure the vector index, use the following settings in your Django project settings:
WAGTAIL_VECTOR_INDEX_STORAGE_PROVIDERS = {
"default": {
"STORAGE_PROVIDER": "wagtail_vector_index.storage.pgvector.PgvectorStorageProvider",
}
}
You also need to install another Django application because the pgvector backend contains its own database model.
And you need to run the migrations:
Qdrant Provider
The Qdrant provider supports both the cloud and self-hosted versions of the Qdrant vector database.
To use this provider, you should install Wagtail Vector Index with an optional dependency:
You need to configure the provider in your Django project settings file:
WAGTAIL_VECTOR_INDEX_STORAGE_PROVIDERS = {
"default": {
"STORAGE_PROVIDER": "wagtail_vector_index.storage.qdrant.QdrantBackend",
"HOST": "https://location/of/qdrant/cluster",
"API_KEY": "your_qdrant_cloud_api_key", # Not required for self-hosted installations
}
}
Weaviate Provider
The Weaviate provider supports both the cloud and self-hosted versions of the Weaviate vector database.
To use this provider, you should install Wagtail Vector Index with an optional dependency:
You need to configure the vector index provider in your Django project settings file: