Skip to main content

Vector Databases

Choose and connect the vector store for RAG — ChromaDB, Elasticsearch, Milvus, MariaDB Vector, OpenSearch, PGVector, Qdrant, Pinecone, Weaviate, Oracle 23ai and S3 Vector buckets.

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.
ChromaDB (Default) Is Not Safe for Multi-Worker or Multi-Replica Deployments

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:

  1. Switch to a client-server vector database such as PGVector, MariaDB Vector, Milvus, or Qdrant (recommended).
  2. Run ChromaDB as a separate HTTP server and configure CHROMA_HTTP_HOST / CHROMA_HTTP_PORT so that Hrida.ai uses an HttpClient instead of the local PersistentClient.

See the Scaling & HA guide for full details.

note

PostgreSQL Dependencies The official Hrida.ai Docker image already includes the PostgreSQL and pgvector libraries, so there is nothing extra to install.

info

Only PGVector and ChromaDB will be consistently maintained by the Hrida.ai team. The other vector stores are third-party vector databases.

ChromaDB​

Local vs. HTTP Mode

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 the chromadb module)
  • 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 the chromadb module)
  • 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 PersistentClient to a fork-safe HttpClient.

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 None is set as default.
  • Description: Specifies the Elasticsearch API key.
  • Persistence: This environment variable is a ConfigVar variable.

ELASTICSEARCH_CA_CERTS​

  • Type: str
  • Default: Empty string (' '), since None is set as default.
  • Description: Specifies the path to the CA certificates for Elasticsearch.
  • Persistence: This environment variable is a ConfigVar variable.

ELASTICSEARCH_CLOUD_ID​

  • Type: str
  • Default: Empty string (' '), since None is set as default.
  • Description: Specifies the Elasticsearch cloud ID.
  • Persistence: This environment variable is a ConfigVar variable.

ELASTICSEARCH_INDEX_PREFIX​

  • Type: str
  • Default: hridaai_collections
  • Description: Specifies the prefix for the Elasticsearch index.
  • Persistence: This environment variable is a ConfigVar variable.

ELASTICSEARCH_PASSWORD​

  • Type: str
  • Default: Empty string (' '), since None is set as default.
  • Description: Specifies the password for Elasticsearch.
  • Persistence: This environment variable is a ConfigVar variable.

ELASTICSEARCH_URL​

  • Type: str
  • Default: https://localhost:9200
  • Description: Specifies the URL for the Elasticsearch instance.
  • Persistence: This environment variable is a ConfigVar variable.

ELASTICSEARCH_USERNAME​

  • Type: str
  • Default: Empty string (' '), since None is set as default.
  • Description: Specifies the username for Elasticsearch.
  • Persistence: This environment variable is a ConfigVar variable.

Milvus​

warning

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. AUTOINDEX is generally recommended for Milvus standalone. HNSW may offer better performance but requires a clustered Milvus setup and is not meant for standalone setups.
  • Persistence: This environment variable is a ConfigVar variable.

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 ConfigVar variable.

MILVUS_HNSW_M​

  • Type: int
  • Default: 16
  • Description: Specifies the M parameter for the HNSW index type in Milvus. This influences the number of bi-directional links created for each new element during construction. Only applicable if MILVUS_INDEX_TYPE is HNSW.
  • Persistence: This environment variable is a ConfigVar variable.

MILVUS_HNSW_EFCONSTRUCTION​

  • Type: int
  • Default: 100
  • Description: Specifies the efConstruction parameter for the HNSW index type in Milvus. This influences the size of the dynamic list for the nearest neighbors during index construction. Only applicable if MILVUS_INDEX_TYPE is HNSW.
  • Persistence: This environment variable is a ConfigVar variable.

MILVUS_IVF_FLAT_NLIST​

  • Type: int
  • Default: 128
  • Description: Specifies the nlist parameter for the IVF_FLAT index type in Milvus. This is the number of cluster units. Only applicable if MILVUS_INDEX_TYPE is IVF_FLAT.
  • Persistence: This environment variable is a ConfigVar variable.

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.
info

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 VariableDefault Name (Suffix)Trigger / Routing Logic in the CodePurpose
HASH_BASED_COLLECTION_hash_basedCollection name is a 63-char hex string (SHA256 hash).Caching direct URL fetches (Websites) with the # feature.
MEMORY_COLLECTION_memoriesCollection name starts with user-memory-.Storing user-specific long-term memories of the memory system.
FILE_COLLECTION_filesCollection name starts with file-.Storing uploaded documents (PDFs, DOCX, etc.).
WEB_SEARCH_COLLECTION_web_searchCollection name starts with web-search-.Storing transient results from search engine queries.
KNOWLEDGE_COLLECTION_knowledgeEverything else (Default fallback).Storing explicitly created Knowledge Bases.
info

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=true and 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
warning

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
warning

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​

warning

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.

note

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:

dockerfile
FROM ghcr.io/hrida-ai/hrida-ai-studio:<version>
RUN pip install --no-cache-dir mariadb==1.1.14

The 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.

info

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 - Uses vec_distance_cosine() for similarity measurement.
    • euclidean - Uses vec_distance_euclidean() for similarity measurement.
  • Default: cosine
  • Description: Controls which distance function is used for the VECTOR INDEX and 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 MariaDB VECTOR INDEX definition). 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 0 disables connection pooling entirely (uses NullPool).

MARIADB_VECTOR_POOL_MAX_OVERFLOW​

  • Type: int
  • Default: 0
  • Description: Specifies the maximum number of connections that can be created beyond MARIADB_VECTOR_POOL_SIZE when 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​

note

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_URL environment 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
info

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 ConfigVar variable.
info

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_METHOD is set to hnsw.
  • Persistence: This environment variable is a ConfigVar variable.

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_METHOD is set to hnsw.
  • Persistence: This environment variable is a ConfigVar variable.

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 / 1000 for up to 1M rows and sqrt(rows) for over 1M rows. Only applicable when PGVECTOR_INDEX_METHOD is set to ivfflat.
  • Persistence: This environment variable is a ConfigVar variable.
info

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 halfvec data type instead of vector for storing embeddings. Required when PGVECTOR_INITIALIZE_MAX_VECTOR_LENGTH exceeds 2000 dimensions, as the vector type 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_KEY must be set.

PGVECTOR_PGCRYPTO_KEY​

  • Type: str
  • Default: None
  • Description: Specifies the encryption key for pgcrypto when PGVECTOR_PGCRYPTO is 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_SIZE when 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​

warning

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.
info

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 m parameter. In multi-tenancy mode, this value is used for the payload_m parameter to build indexes on the payload, as the global m is 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
info

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-knowledge prefix (or hridaai prefix to remove all collections related to Hrida.ai) using the native Qdrant client
  • Go to Admin Settings > Documents > Reindex Knowledge Base to migrate existing knowledge base

Reindex Knowledge Base will ONLY migrate the knowledge base

danger

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.

warning

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​

info

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_HOST when 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 true when 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 true when 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 false for direct connections (e.g., to Oracle Database 23ai Free or DBCS instances) using host, port, and service name in ORACLE_DB_DSN.
    • Set to true for wallet-based connections (e.g., to Oracle Autonomous Database (ADW/ATP)). When true, ORACLE_WALLET_DIR and ORACLE_WALLET_PASSWORD must also be configured.

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_WALLET is false, this should be in the format hostname:port/service_name (e.g., localhost:1521/FREEPDB1).
    • If ORACLE_DB_USE_WALLET is true, this can be a TNS alias (e.g., medium for ADW/ATP), or a full connection string.

ORACLE_WALLET_DIR​

  • Type: str
  • Default: Empty string (' ')
  • Description: Required when ORACLE_DB_USE_WALLET is true. 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_WALLET is true. 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.

info

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.
Hrida.ai is proprietary software of Zlabs Innovation. See the license for terms. © 2026 Zlabs Innovation.