Vector Databases
These variables are set on the Hrida.ai container. Variables marked ConfigVar are saved to the database on first start — see how ConfigVar works before changing them later.
VECTOR_DB
- Type:
str - Options:
chroma,elasticsearch,mariadb-vector,milvus,opensearch,pgvector,qdrant,pinecone,s3vector,oracle23ai,weaviate- Default:
chroma - Description: Specifies which vector database system to use. This setting determines which vector storage system will be used for managing embeddings.
The default ChromaDB configuration uses a local PersistentClient backed by SQLite. SQLite is not fork-safe — when uvicorn forks multiple worker processes (UVICORN_WORKERS > 1), each worker inherits a copy of the same SQLite connection. Concurrent writes from these forked processes cause immediate crashes (Child process died) or database corruption.
This also applies to multi-replica deployments (Kubernetes, Docker Swarm) where multiple containers point at the same ChromaDB data directory.
If you need multiple workers or replicas, you must either:
- Switch to a client-server vector database such as PGVector, MariaDB Vector, Milvus, or Qdrant (recommended).
- Run ChromaDB as a separate HTTP server and configure
CHROMA_HTTP_HOST/CHROMA_HTTP_PORTso that Hrida.ai uses anHttpClientinstead of the localPersistentClient.
See the Scaling & HA guide for full details.
PostgreSQL Dependencies
The official Hrida.ai Docker image already includes the PostgreSQL and pgvector libraries, so there is nothing extra to install.
Only PGVector and ChromaDB will be consistently maintained by the Hrida.ai team. The other vector stores are third-party vector databases.
ChromaDB
By default (when CHROMA_HTTP_HOST is not set), ChromaDB runs as a local PersistentClient using SQLite for storage. This mode is only safe for single-worker, single-instance deployments (UVICORN_WORKERS=1, one replica).
For multi-worker or multi-replica setups, you must configure CHROMA_HTTP_HOST and CHROMA_HTTP_PORT to point to a standalone ChromaDB server, or switch to a different vector database entirely. See the VECTOR_DB warning above.
CHROMA_TENANT
- Type:
str - Default: The value of
chromadb.DEFAULT_TENANT(a constant in thechromadbmodule) - Description: Sets the tenant for ChromaDB to use for RAG embeddings.
CHROMA_DATABASE
- Type:
str - Default: The value of
chromadb.DEFAULT_DATABASE(a constant in thechromadbmodule) - Description: Sets the database in the ChromaDB tenant to use for RAG embeddings.
CHROMA_HTTP_HOST
- Type:
str - Description: Specifies the hostname of a remote ChromaDB Server. Uses a local ChromaDB instance if not set. Setting this variable is required for multi-worker or multi-replica deployments — it switches ChromaDB from the local SQLite-backed
PersistentClientto a fork-safeHttpClient.
CHROMA_HTTP_PORT
- Type:
int - Default:
8000 - Description: Specifies the port of a remote ChromaDB Server.
CHROMA_HTTP_HEADERS
- Type:
str - Description: A comma-separated list of HTTP headers to include with every ChromaDB request.
- Example:
Authorization=Bearer heuhagfuahefj,User-Agent=Hrida.ai.
CHROMA_HTTP_SSL
- Type:
bool - Default:
False - Description: Controls whether or not SSL is used for ChromaDB Server connections.
CHROMA_CLIENT_AUTH_PROVIDER
- Type:
str - Description: Specifies an authentication provider for remote ChromaDB Server.
- Example:
chromadb.auth.basic_authn.BasicAuthClientProvider
CHROMA_CLIENT_AUTH_CREDENTIALS
- Type:
str - Description: Specifies auth credentials for remote ChromaDB Server.
- Example:
username:password
Elasticsearch
ELASTICSEARCH_API_KEY
- Type:
str - Default: Empty string (' '), since
Noneis set as default. - Description: Specifies the Elasticsearch API key.
- Persistence: This environment variable is a
ConfigVarvariable.
ELASTICSEARCH_CA_CERTS
- Type:
str - Default: Empty string (' '), since
Noneis set as default. - Description: Specifies the path to the CA certificates for Elasticsearch.
- Persistence: This environment variable is a
ConfigVarvariable.
ELASTICSEARCH_CLOUD_ID
- Type:
str - Default: Empty string (' '), since
Noneis set as default. - Description: Specifies the Elasticsearch cloud ID.
- Persistence: This environment variable is a
ConfigVarvariable.
ELASTICSEARCH_INDEX_PREFIX
- Type:
str - Default:
hridaai_collections - Description: Specifies the prefix for the Elasticsearch index.
- Persistence: This environment variable is a
ConfigVarvariable.
ELASTICSEARCH_PASSWORD
- Type:
str - Default: Empty string (' '), since
Noneis set as default. - Description: Specifies the password for Elasticsearch.
- Persistence: This environment variable is a
ConfigVarvariable.
ELASTICSEARCH_URL
- Type:
str - Default:
https://localhost:9200 - Description: Specifies the URL for the Elasticsearch instance.
- Persistence: This environment variable is a
ConfigVarvariable.
ELASTICSEARCH_USERNAME
- Type:
str - Default: Empty string (' '), since
Noneis set as default. - Description: Specifies the username for Elasticsearch.
- Persistence: This environment variable is a
ConfigVarvariable.
Milvus
Milvus is not actively maintained by the Hrida.ai team. It is an addition by users and is maintained by users. If you want to use Milvus, be careful when upgrading Hrida.ai (crate backups and snapshots for rollbacks) in case internal changes in Hrida.ai lead to breakage.
MILVUS_URI (Required)
- Type:
str - Default:
${DATA_DIR}/vector_db/milvus.db - Example (Remote):
http://your-server-ip:19530 - Description: Specifies the URI for connecting to the Milvus vector database. This can point to a local or remote Milvus server based on the deployment configuration.
MILVUS_DB
- Type:
str - Default:
default - Example:
default - Description: Specifies the database to connect to within a Milvus instance.
MILVUS_TOKEN (Required for remote connections with authentication)
- Type:
str - Default:
None - Example:
root:password(format:username:password) - Description: Specifies an optional connection token for Milvus. Required when connecting to a remote Milvus server with authentication enabled. Format is
username:password.
MILVUS_INDEX_TYPE
- Type:
str - Default:
HNSW - Options:
AUTOINDEX,FLAT,IVF_FLAT,HNSW,DISKANN - Description: Specifies the index type to use when creating a new collection in Milvus.
AUTOINDEXis generally recommended for Milvus standalone.HNSWmay offer better performance but requires a clustered Milvus setup and is not meant for standalone setups. - Persistence: This environment variable is a
ConfigVarvariable.
MILVUS_METRIC_TYPE
- Type:
str - Default:
COSINE - Options:
COSINE,IP,L2 - Description: Specifies the metric type for vector similarity search in Milvus.
- Persistence: This environment variable is a
ConfigVarvariable.
MILVUS_HNSW_M
- Type:
int - Default:
16 - Description: Specifies the
Mparameter for the HNSW index type in Milvus. This influences the number of bi-directional links created for each new element during construction. Only applicable ifMILVUS_INDEX_TYPEisHNSW. - Persistence: This environment variable is a
ConfigVarvariable.
MILVUS_HNSW_EFCONSTRUCTION
- Type:
int - Default:
100 - Description: Specifies the
efConstructionparameter for the HNSW index type in Milvus. This influences the size of the dynamic list for the nearest neighbors during index construction. Only applicable ifMILVUS_INDEX_TYPEisHNSW. - Persistence: This environment variable is a
ConfigVarvariable.
MILVUS_IVF_FLAT_NLIST
- Type:
int - Default:
128 - Description: Specifies the
nlistparameter for the IVF_FLAT index type in Milvus. This is the number of cluster units. Only applicable ifMILVUS_INDEX_TYPEisIVF_FLAT. - Persistence: This environment variable is a
ConfigVarvariable.
MILVUS_DISKANN_MAX_DEGREE
- Type:
int - Default:
56 - Description: Sets the max degree for Milvus if Milvus is in DISKANN indexing mode. Generally recommended to leave as is.
MILVUS_DISKANN_SEARCH_LIST_SIZE
- Type:
int - Default:
100 - Description: Sets the Milvus DISKANN search list size. Generally recommended to leave as is.
ENABLE_MILVUS_MULTITENANCY_MODE
- Type:
bool - Default:
false - Description: Enables multitenancy pattern for Milvus collections management, which significantly reduces RAM usage and computational overhead by consolidating similar vector data structures. Controls whether Milvus uses multitenancy collection architecture. When enabled, all vector data is consolidated into 5 shared collections (memories, knowledge, files, web_search, hash_based) instead of creating individual collections per resource. Data isolation is achieved via a resource_id field rather than collection-level separation.
Benefits of multitenancy mode:
- Significantly reduced RAM consumption (5 collections vs potentially hundreds)
- Lower computational overhead from collection management
- Faster cold-start times
- Reduced index maintenance burden
Technical implementation:
- All memories go into
{prefix}_memories - All knowledge bases go into
{prefix}_knowledge - All uploaded files go into
{prefix}_files - Web search results go into
{prefix}_web_search - Hash-based collections go into
{prefix}_hash_based - Each entry includes a resource_id field matching the original collection name
- Queries automatically filter by resource_id to maintain data isolation
| Collection Variable | Default Name (Suffix) | Trigger / Routing Logic in the Code | Purpose |
|---|---|---|---|
HASH_BASED_COLLECTION | _hash_based | Collection name is a 63-char hex string (SHA256 hash). | Caching direct URL fetches (Websites) with the # feature. |
MEMORY_COLLECTION | _memories | Collection name starts with user-memory-. | Storing user-specific long-term memories of the memory system. |
FILE_COLLECTION | _files | Collection name starts with file-. | Storing uploaded documents (PDFs, DOCX, etc.). |
WEB_SEARCH_COLLECTION | _web_search | Collection name starts with web-search-. | Storing transient results from search engine queries. |
KNOWLEDGE_COLLECTION | _knowledge | Everything else (Default fallback). | Storing explicitly created Knowledge Bases. |
Migration from Legacy Mode to Multitenancy
What happens when you enable multitenancy when you already have a normal milvus database with data in it:
- Existing collections (pattern:
hridaai_{collection_name}) remain in Milvus but become inaccessible to Hrida.ai - New data is written to the 5 shared multitenancy collections
- Application treats knowledge bases as empty until reindexed
- Files and memories are NOT automatically migrated to the new collection schema and will appear missing
Clean migration path from normal Milvus to multitenancy milvus:
- Before enabling multitenancy, export any critical knowledge content from the UI if possible
- Set
ENABLE_MILVUS_MULTITENANCY_MODE=trueand restart Hrida.ai - Navigate to
Admin Settings > Documents > Click Reindex Knowledge Base
This rebuilds ONLY knowledge base vectors into the new multitenancy collections Files, user memories, and web search history are NOT migrated by this operation
Verify knowledge bases are accessible and functional
- Re-upload files if file-based retrieval is critical (file metadata remains but vectors are not migrated)
- User chat memories will need to be regenerated through new conversations
Cleaning up legacy collections: After successful migration (from milvus to multitenancy milvus), legacy collections still consume resources. Remove them manually:
- Connect to Milvus using the native client (pymilvus or Attu UI)
- Delete all old collections
Current UI limitations:
- No one-click "migrate and cleanup" button exists
- Vector DB reset from UI (Admin Settings > Documents > Reset Vector Storage/Knowledge) only affects the active mode's collections
- Legacy collections require manual cleanup via Milvus client tools
Critical Considerations
Before enabling multitenancy on an existing installation:
- Data loss risk: File vectors and user memory vectors are NOT migrated automatically. Only knowledge base content can be reindexed (migrated).
- Collection naming dependency: Multitenancy relies on Hrida.ai's internal collection naming conventions (user-memory-, file-, web-search-, hash patterns). If Hrida.ai changes these conventions in future updates, multitenancy routing may break, causing data corruption or incorrect data retrieval across isolated resources.
- No automatic rollback: Disabling multitenancy after data is written will not restore access to the shared collections. Data would need manual extraction and re-import.
For fresh installations, no migration concerns exist
For existing installations with valuable data:
- Do not migrate to multitenancy mode if you do not want to handle migration and risk data loss
- Understand that files and memories require re-upload/regeneration
- Test migration on a backup/staging environment first
- Consider if RAM savings justify the migration effort for your use case
To perform a full reset and switch to multitenancy:
- Backup any critical knowledge base content externally
- Navigate to
Admin Settings > Documents - Click
Reset Vector Storage/Knowledge(this deletes all active mode collections and stored knowledge metadata) - Set
ENABLE_MILVUS_MULTITENANCY_MODE=true - Restart Hrida.ai
- Re-upload/re-create knowledge bases from scratch
The mapping of multitenancy relies on current Hrida.ai naming conventions for collection names.
If Hrida.ai changes how it generates collection names (e.g., "user-memory-" prefix, "file-" prefix, web search patterns, or hash formats), this mapping will break and route data to incorrect collections. POTENTIALLY CAUSING HUGE DATA CORRUPTION, DATA CONSISTENCY ISSUES AND INCORRECT DATA MAPPING INSIDE THE DATABASE.
If you use Multitenancy Mode, you should always check for any changes to the collection names and data mapping before upgrading, and upgrade carefully (snapshots and backups for rollbacks)!
MILVUS_COLLECTION_PREFIX
- Type:
str - Default:
hridaai - Description: Sets the prefix for Milvus collection names. In multitenancy mode, collections become
{prefix}_memories,{prefix}_knowledge, etc. In legacy mode, collections are{prefix}_{collection_name}. Changing this value creates an entirely separate namespace—existing collections with the old prefix become invisible to Hrida.ai but remain in Milvus consuming resources. Use this for true multi-instance isolation on a shared Milvus server, not for migration between modes. Milvus only accepts underscores, hyphens/dashes are not possible and will cause errors.
MariaDB Vector
MariaDB Vector is not actively maintained by the Hrida.ai team. It is an addition by users and is maintained by users. If you want to use MariaDB Vector, be careful when upgrading Hrida.ai (create backups and snapshots for rollbacks) in case internal changes in Hrida.ai lead to breakage.
MariaDB Dependencies
The mariadb Python connector is not included by default — it was removed from the bundled dependencies. To use mariadb-vector, you must install it explicitly:
FROM ghcr.io/hrida-ai/hrida-ai-studio:<version>
RUN pip install --no-cache-dir mariadb==1.1.14The official Docker image includes the system-level C library (libmariadb-dev) needed to compile the connector, so this extended image builds without additional system packages. For non-Docker deployments, you must install the MariaDB C connector library (libmariadb-dev on Debian/Ubuntu) before installing the Python driver.
MariaDB Vector requires the official MariaDB connector (mariadb+mariadbconnector://...) as the connection scheme. This is mandatory because the official driver provides the correct qmark paramstyle and proper binary binding for VECTOR(n) float32 payloads. Other MySQL-compatible drivers will not work.
Your MariaDB server must support VECTOR and VECTOR INDEX features (MariaDB 11.7+).
MARIADB_VECTOR_DB_URL
- Type:
str - Default: Empty string (
"") - Description: Sets the database URL for MariaDB Vector storage. Must use the
mariadb+mariadbconnector://scheme (official MariaDB driver). - Example:
mariadb+mariadbconnector://user:password@localhost:3306/hridaai
MARIADB_VECTOR_INITIALIZE_MAX_VECTOR_LENGTH
- Type:
int - Default:
1536 - Description: Specifies the maximum vector length (number of dimensions) for the
VECTOR(n)column. Must match the dimensionality of your embedding model. Once the table is created, changing this value requires data migration — the backend will refuse to start if the configured dimension differs from the stored column dimension.
MARIADB_VECTOR_DISTANCE_STRATEGY
- Type:
str - Options:
cosine- Usesvec_distance_cosine()for similarity measurement.euclidean- Usesvec_distance_euclidean()for similarity measurement.
- Default:
cosine - Description: Controls which distance function is used for the
VECTOR INDEXand similarity search queries.
MARIADB_VECTOR_INDEX_M
- Type:
int - Default:
8 - Description: HNSW index parameter that controls the maximum number of bi-directional connections per layer during index construction (
M={'<int>'}in the MariaDBVECTOR INDEXdefinition). Higher values improve recall but increase index size and build time.
MARIADB_VECTOR_POOL_SIZE
- Type:
int - Default:
None - Description: Sets the number of connections to maintain in the MariaDB Vector database connection pool. If not set, uses SQLAlchemy defaults. Setting this to
0disables connection pooling entirely (usesNullPool).
MARIADB_VECTOR_POOL_MAX_OVERFLOW
- Type:
int - Default:
0 - Description: Specifies the maximum number of connections that can be created beyond
MARIADB_VECTOR_POOL_SIZEwhen the pool is exhausted.
MARIADB_VECTOR_POOL_TIMEOUT
- Type:
int - Default:
30 - Description: Sets the timeout in seconds for acquiring a connection from the MariaDB Vector pool.
MARIADB_VECTOR_POOL_RECYCLE
- Type:
int - Default:
3600 - Description: Specifies the time in seconds after which connections are recycled in the MariaDB Vector pool to prevent stale connections.
OpenSearch
OPENSEARCH_CERT_VERIFY
- Type:
bool - Default:
False - Description: Enables or disables OpenSearch certificate verification.
OPENSEARCH_PASSWORD
- Type:
str - Default:
None - Description: Sets the password for OpenSearch.
OPENSEARCH_SSL
- Type:
bool - Default:
True - Description: Enables or disables SSL for OpenSearch.
OPENSEARCH_URI
- Type:
str - Default:
https://localhost:9200 - Description: Sets the URI for OpenSearch.
OPENSEARCH_USERNAME
- Type:
str - Default:
None - Description: Sets the username for OpenSearch.
PGVector
PostgreSQL Dependencies
The official Hrida.ai Docker image already includes the PostgreSQL and pgvector libraries, so there is nothing extra to install.
PGVECTOR_DB_URL
- Type:
str - Default: The value of the
DATABASE_URLenvironment variable - Description: Sets the database URL for model storage.
PGVECTOR_INITIALIZE_MAX_VECTOR_LENGTH
- Type:
str - Default:
1536 - Description: Specifies the maximum vector length for PGVector initialization.
PGVECTOR_CREATE_EXTENSION
- Type:
str - Default
true - Description: Creates the vector extension in the database
If set to false, hrida-ai will assume the postgreSQL database where embeddings will be stored is pre-configured with the vector extension. This also allows hrida-ai to run as a non superuser database user.
PGVECTOR_INDEX_METHOD
- Type:
str - Options:
ivfflat- Uses inverted file with flat compression, better for datasets with many dimensions.hnsw- Uses Hierarchical Navigable Small World graphs, generally provides better query performance.
- Default: Not specified (pgvector will use its default)
- Description: Specifies the index method for pgvector. The choice affects query performance and index build time.
- Persistence: This environment variable is a
ConfigVarvariable.
When choosing an index method, consider your dataset size and query patterns. HNSW generally provides better query performance but uses more memory, while IVFFlat can be more memory-efficient for larger datasets.
PGVECTOR_HNSW_M
- Type:
int - Default:
16 - Description: HNSW index parameter that controls the maximum number of bi-directional connections per layer during index construction. Higher values improve recall but increase index size and build time. Only applicable when
PGVECTOR_INDEX_METHODis set tohnsw. - Persistence: This environment variable is a
ConfigVarvariable.
PGVECTOR_HNSW_EF_CONSTRUCTION
- Type:
int - Default:
64 - Description: HNSW index parameter that controls the size of the dynamic candidate list during index construction. Higher values improve index quality but increase build time. Only applicable when
PGVECTOR_INDEX_METHODis set tohnsw. - Persistence: This environment variable is a
ConfigVarvariable.
PGVECTOR_IVFFLAT_LISTS
- Type:
int - Default:
100 - Description: IVFFlat index parameter that specifies the number of inverted lists (clusters) to create. A good starting point is
rows / 1000for up to 1M rows andsqrt(rows)for over 1M rows. Only applicable whenPGVECTOR_INDEX_METHODis set toivfflat. - Persistence: This environment variable is a
ConfigVarvariable.
For IVFFlat indexes, choosing the right number of lists is crucial for query performance. Too few lists will result in slow queries, while too many will increase index size without significant performance gains.
PGVECTOR_USE_HALFVEC
- Type:
bool - Default:
False - Description: Enables the use of
halfvecdata type instead ofvectorfor storing embeddings. Required whenPGVECTOR_INITIALIZE_MAX_VECTOR_LENGTHexceeds 2000 dimensions, as thevectortype has a 2000-dimension limit.
PGVECTOR_PGCRYPTO
- Type:
bool - Default:
False - Description: Enables pgcrypto extension for encrypting sensitive data within PGVector. When enabled,
PGVECTOR_PGCRYPTO_KEYmust be set.
PGVECTOR_PGCRYPTO_KEY
- Type:
str - Default:
None - Description: Specifies the encryption key for pgcrypto when
PGVECTOR_PGCRYPTOis enabled. Must be a secure, randomly generated key.
PGVECTOR_POOL_SIZE
- Type:
int - Default:
None - Description: Sets the number of connections to maintain in the PGVector database connection pool. If not set, uses SQLAlchemy defaults.
PGVECTOR_POOL_MAX_OVERFLOW
- Type:
int - Default:
0 - Description: Specifies the maximum number of connections that can be created beyond
PGVECTOR_POOL_SIZEwhen the pool is exhausted.
PGVECTOR_POOL_TIMEOUT
- Type:
int - Default:
30 - Description: Sets the timeout in seconds for acquiring a connection from the PGVector pool.
PGVECTOR_POOL_RECYCLE
- Type:
int - Default:
3600 - Description: Specifies the time in seconds after which connections are recycled in the PGVector pool to prevent stale connections.
Qdrant
Qdrant is not actively maintained by the Hrida.ai team. It is an addition by users and is maintained by users. If you want to use Qdrant, be careful when upgrading Hrida.ai (crate backups and snapshots for rollbacks) in case internal changes in Hrida.ai lead to breakage.
QDRANT_API_KEY
- Type:
str - Description: Sets the API key for Qdrant.
QDRANT_URI
- Type:
str - Description: Sets the URI for Qdrant.
QDRANT_ON_DISK
- Type:
bool - Default:
False - Description: Enable the usage of memmap(also known as on-disk) storage
QDRANT_PREFER_GRPC
- Type:
bool - Default:
False - Description: Use gPRC interface whenever possible.
If set to True, and QDRANT_URI points to a self-hosted server with TLS enabled and certificate signed by a private CA, set the environment variable GRPC_DEFAULT_SSL_ROOTS_FILE_PATH to the path of your PEM-encoded CA certificates file. See the gRPC Core Docs for more information.
QDRANT_GRPC_PORT
- Type:
int - Default:
6334 - Description: Sets the gRPC port number for Qdrant.
QDRANT_TIMEOUT
- Type:
int - Default:
5 - Description: Sets the timeout in seconds for all requests made to the Qdrant server, helping to prevent long-running queries from stalling the application.
QDRANT_HNSW_M
- Type:
int - Default:
16 - Description: Controls the HNSW (Hierarchical Navigable Small World) index construction. In standard mode, this sets the
mparameter. In multi-tenancy mode, this value is used for thepayload_mparameter to build indexes on the payload, as the globalmis disabled for performance, following Qdrant best practices.
ENABLE_QDRANT_MULTITENANCY_MODE
- Type:
bool - Default:
True - Description: Enables multitenancy pattern for Qdrant collections management, which significantly reduces RAM usage and computational overhead by consolidating similar vector data structures. Recommend turn on
This will disconnect all Qdrant collections created in the previous pattern, which is non-multitenancy. Go to Admin Settings > Documents > Reindex Knowledge Base to migrate existing knowledge bases.
The Qdrant collections created in the previous pattern will still consume resources.
Currently, there is no button in the UI to only reset the vector DB. If you want to migrate knowledge to multitenancy:
- Remove all collections with the
hridaai-knowledgeprefix (orhridaaiprefix to remove all collections related to Hrida.ai) using the native Qdrant client - Go to
Admin Settings>Documents>Reindex Knowledge Baseto migrate existing knowledge base
Reindex Knowledge Base will ONLY migrate the knowledge base
If you decide to use the multitenancy pattern as your default and you don't need to migrate old knowledge, go to Admin Settings > Documents to reset vector and knowledge, which will delete all collections with the hridaai prefix and all stored knowledge.
The mapping of multitenancy relies on current Hrida.ai naming conventions for collection names.
If Hrida.ai changes how it generates collection names (e.g., "user-memory-" prefix, "file-" prefix, web search patterns, or hash formats), this mapping will break and route data to incorrect collections. POTENTIALLY CAUSING HUGE DATA CORRUPTION, DATA CONSISTENCY ISSUES AND INCORRECT DATA MAPPING INSIDE THE DATABASE.
If you use Multitenancy Mode, you should always check for any changes to the collection names and data mapping before upgrading, and upgrade carefully (snapshots and backups for rollbacks)!
QDRANT_COLLECTION_PREFIX
- Type:
str - Default:
hrida-ai - Description: Sets the prefix for Qdrant collection names. Useful for namespacing or isolating collections, especially in multitenancy mode. Changing this value will cause the application to use a different set of collections in Qdrant. Existing collections with a different prefix will not be affected.
Pinecone
When using Pinecone as the vector store, the following environment variables are used to control its behavior. Make sure to set these variables in your .env file or deployment environment.
PINECONE_API_KEY
- Type:
str - Default:
None - Description: Sets the API key used to authenticate with the Pinecone service.
PINECONE_ENVIRONMENT
- Type:
str - Default:
None - Description: Specifies the Pinecone environment to connect to (e.g.,
us-west1-gcp,gcp-starter, etc.).
PINECONE_INDEX_NAME
- Type:
str - Default:
hrida-ai-index - Description: Defines the name of the Pinecone index that will be used to store and query vector embeddings.
PINECONE_DIMENSION
- Type:
int - Default:
1536 - Description: The dimensionality of the vector embeddings. Must match the dimension expected by the index (commonly 768, 1024, 1536, or 3072 based on model used).
PINECONE_METRIC
- Type:
str - Default:
cosine - Options:
cosine,dotproduct,euclidean - Description: Specifies the similarity metric to use for vector comparisons within the Pinecone index.
PINECONE_CLOUD
- Type:
str - Default:
aws - Options:
aws,gcp,azure - Description: Specifies the cloud provider where the Pinecone index is hosted.
Weaviate
Self-Hosted and Cloud Deployments
Hrida.ai uses connect_to_custom for Weaviate connections, which supports both locally hosted and remote Weaviate instances. This is essential for self-hosted deployments where HTTP and gRPC endpoints may be on different ingresses or hostnames, which is common in container orchestration platforms like Kubernetes or Azure Container Apps.
WEAVIATE_HTTP_HOST
- Type:
str - Default: Empty string (' ')
- Description: Specifies the hostname of the Weaviate server for HTTP connections. For self-hosted deployments, this is typically your Weaviate HTTP endpoint hostname.
WEAVIATE_GRPC_HOST
- Type:
str - Default: Empty string (' ')
- Description: Specifies the hostname of the Weaviate server for gRPC connections. This can be different from
WEAVIATE_HTTP_HOSTwhen HTTP and gRPC are served on separate ingresses, which is common in container orchestration environments.
WEAVIATE_HTTP_PORT
- Type:
int - Default:
8080 - Description: Specifies the HTTP port for connecting to the Weaviate server.
WEAVIATE_GRPC_PORT
- Type:
int - Default:
50051 - Description: Specifies the gRPC port for connecting to the Weaviate server.
WEAVIATE_HTTP_SECURE
- Type:
bool - Default:
False - Description: Enables HTTPS for HTTP connections to the Weaviate server. Set to
truewhen connecting to a Weaviate instance with TLS enabled on the HTTP endpoint.
WEAVIATE_GRPC_SECURE
- Type:
bool - Default:
False - Description: Enables TLS for gRPC connections to the Weaviate server. Set to
truewhen connecting to a Weaviate instance with TLS enabled on the gRPC endpoint.
WEAVIATE_API_KEY
- Type:
str - Default:
None - Description: Sets the API key for authenticating with Weaviate server.
WEAVIATE_SKIP_INIT_CHECKS
- Type:
bool - Default:
False - Description: Skips Weaviate initialization checks when connecting. This can be useful in certain network configurations where the checks may fail but the connection itself works.
Oracle 23ai Vector Search (oracle23ai)
ORACLE_DB_USE_WALLET
- Type:
bool - Default:
false - Description: Determines the connection method to the Oracle Database.
- Set to
falsefor direct connections (e.g., to Oracle Database 23ai Free or DBCS instances) using host, port, and service name inORACLE_DB_DSN. - Set to
truefor wallet-based connections (e.g., to Oracle Autonomous Database (ADW/ATP)). Whentrue,ORACLE_WALLET_DIRandORACLE_WALLET_PASSWORDmust also be configured.
- Set to
ORACLE_DB_USER
- Type:
str - Default:
DEMOUSER - Description: Specifies the username used to connect to the Oracle Database.
ORACLE_DB_PASSWORD
- Type:
str - Default:
Welcome123456 - Description: Specifies the password for the
ORACLE_DB_USER.
ORACLE_DB_DSN
- Type:
str - Default:
localhost:1521/FREEPDB1 - Description: Defines the Data Source Name for the Oracle Database connection.
- If
ORACLE_DB_USE_WALLETisfalse, this should be in the formathostname:port/service_name(e.g.,localhost:1521/FREEPDB1). - If
ORACLE_DB_USE_WALLETistrue, this can be a TNS alias (e.g.,mediumfor ADW/ATP), or a full connection string.
- If
ORACLE_WALLET_DIR
- Type:
str - Default: Empty string (' ')
- Description: Required when
ORACLE_DB_USE_WALLETistrue. Specifies the absolute path to the directory containing the Oracle Cloud Wallet files (e.g.,cwallet.sso,sqlnet.ora,tnsnames.ora).
ORACLE_WALLET_PASSWORD
- Type:
str - Default: Empty string (' ')
- Description: Required when
ORACLE_DB_USE_WALLETistrue. Specifies the password for the Oracle Cloud Wallet.
ORACLE_VECTOR_LENGTH
- Type:
int - Default:
768 - Description: Sets the expected dimension or length of the vector embeddings stored in the Oracle Database. This must match the embedding model used.
ORACLE_DB_POOL_MIN
- Type:
int - Default:
2 - Description: The minimum number of connections to maintain in the Oracle Database connection pool.
ORACLE_DB_POOL_MAX
- Type:
int - Default:
10 - Description: The maximum number of connections allowed in the Oracle Database connection pool.
ORACLE_DB_POOL_INCREMENT
- Type:
int - Default:
1 - Description: The number of connections to create when the pool needs to grow.
S3 Vector Bucket
When using S3 Vector Bucket as the vector store, the following environment variables are used to control its behavior. Make sure to set these variables in your .env file or deployment environment.
Note: this configuration assumes that AWS credentials will be available to your Hrida.ai environment. This could be through environment variables like AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY, or through IAM role permissions.
S3_VECTOR_BUCKET_NAME
- Type:
str - Description: Specifies the name of the S3 Vector Bucket to store vectors in.
S3_VECTOR_REGION
- Type:
str - Description: Specifies the AWS region where the S3 Vector Bucket is hosted.