Skip to main content

Overview

Open WebUI supports 9 vector database options for storing and retrieving document embeddings in RAG workflows. Choose based on your deployment requirements, scale, and features needed.

Supported Vector Databases

ChromaDB

Default, embedded, zero-config

Qdrant

High-performance, production-ready

Milvus

Scalable, cloud-native

PGVector

PostgreSQL extension

Elasticsearch

Full-text + vector search

OpenSearch

Open source Elasticsearch alternative

Pinecone

Managed cloud service

S3Vector

S3-backed vector storage

Oracle 23ai

Oracle database with vector support

ChromaDB (Default)

Embedded vector database with zero configuration.

Configuration

ChromaDB works out of the box with no configuration:
# Already included in requirements.txt
chromadb==1.4.1
File: backend/requirements.txt:55

Features

  • Zero configuration
  • Embedded mode (no separate server)
  • Automatic persistence
  • Metadata filtering
  • Hybrid search

Use Cases

Single-server deployments
Development and testing
Small to medium datasets

Qdrant

High-performance vector database optimized for production.

Installation

1

Install Client

# Already included in requirements.txt
qdrant-client==1.16.2
2

Deploy Qdrant

docker run -p 6333:6333 \
  -v qdrant_storage:/qdrant/storage \
  qdrant/qdrant
3

Configure Open WebUI

Set environment variables or configure in admin panel

Configuration

VECTOR_DB=qdrant
QDRANT_URL=http://localhost:6333
QDRANT_API_KEY=optional-api-key

Features

  • High performance
  • Distributed deployment
  • HNSW indexing
  • Filtering and payload support
  • Cloud-managed option
File: backend/requirements.txt:123

Milvus

Scalable, cloud-native vector database.

Installation

1

Install Client

# Already included in requirements.txt
pymilvus==2.6.8
2

Deploy Milvus

# Download Milvus docker-compose.yml
wget https://github.com/milvus-io/milvus/releases/download/v2.3.0/milvus-standalone-docker-compose.yml -O docker-compose.yml
docker-compose up -d

Configuration

VECTOR_DB=milvus
MILVUS_URL=http://localhost:19530
MILVUS_TOKEN=optional-token

Features

  • Horizontal scalability
  • Multiple index types (HNSW, IVF, etc.)
  • GPU acceleration support
  • Time travel queries
  • Partition support
File: backend/requirements.txt:122

PGVector

PostgreSQL extension for vector similarity search.

Installation

1

Install Dependencies

# Already included in requirements.txt
psycopg2-binary==2.9.11
pgvector==0.4.2
2

Setup PostgreSQL with pgvector

-- Enable pgvector extension
CREATE EXTENSION IF NOT EXISTS vector;

Configuration

VECTOR_DB=pgvector
DATABASE_URL=postgresql://user:password@localhost:5432/openwebui

Features

  • SQL-based queries
  • ACID compliance
  • Existing PostgreSQL infrastructure
  • Familiar tooling
  • Cost-effective
File: backend/requirements.txt:116-117

Elasticsearch

Full-text search with vector capabilities.

Installation

# Already included in requirements.txt
elasticsearch==9.3.0

Configuration

VECTOR_DB=elasticsearch
ELASTICSEARCH_URL=http://localhost:9200
ELASTICSEARCH_API_KEY=optional

Features

  • Hybrid search (full-text + vector)
  • Mature ecosystem
  • Advanced analytics
  • Scalable architecture
File: backend/requirements.txt:125

OpenSearch

Open source alternative to Elasticsearch.

Installation

# Already included in requirements.txt
opensearch-py==3.1.0

Configuration

VECTOR_DB=opensearch
OPENSEARCH_URL=http://localhost:9200
OPENSEARCH_USERNAME=admin
OPENSEARCH_PASSWORD=admin

Features

  • k-NN plugin for vector search
  • Apache 2.0 license
  • AWS managed service available
  • Compatible with Elasticsearch APIs
File: backend/requirements.txt:57

Pinecone

Managed cloud vector database.

Installation

# Already included in requirements.txt
pinecone==6.0.2

Configuration

VECTOR_DB=pinecone
PINECONE_API_KEY=your-api-key
PINECONE_ENVIRONMENT=us-west1-gcp
PINECONE_INDEX=openwebui

Features

  • Fully managed
  • No infrastructure management
  • Auto-scaling
  • Low latency
  • Free tier available
File: backend/requirements.txt:126

Oracle 23ai

Oracle Database with AI Vector Search.

Installation

# Already included in requirements.txt
oracledb==3.4.2

Configuration

VECTOR_DB=oracle
ORACLE_DSN=localhost:1521/FREEPDB1
ORACLE_USER=vector_user
ORACLE_PASSWORD=password

Features

  • Integrated with Oracle Database
  • ACID transactions
  • Enterprise features
  • SQL-based vector search
File: backend/requirements.txt:127

Configuration Comparison

DatabaseSetup ComplexityPerformanceScalabilityCost
ChromaDB⭐ Easy⭐⭐⭐ Good⭐⭐ MediumFree
Qdrant⭐⭐ Medium⭐⭐⭐⭐⭐ Excellent⭐⭐⭐⭐ HighFree/Paid
Milvus⭐⭐⭐ Complex⭐⭐⭐⭐⭐ Excellent⭐⭐⭐⭐⭐ HighestFree/Paid
PGVector⭐⭐ Medium⭐⭐⭐ Good⭐⭐⭐ HighFree
Elasticsearch⭐⭐⭐ Complex⭐⭐⭐⭐ Very Good⭐⭐⭐⭐ HighFree/Paid
OpenSearch⭐⭐⭐ Complex⭐⭐⭐⭐ Very Good⭐⭐⭐⭐ HighFree
Pinecone⭐ Easy⭐⭐⭐⭐ Very Good⭐⭐⭐⭐⭐ HighestPaid
Oracle 23ai⭐⭐⭐ Complex⭐⭐⭐⭐ Very Good⭐⭐⭐⭐ HighPaid

Switching Vector Databases

Switching vector databases will require re-indexing all documents. Existing embeddings are not automatically migrated.
1

Backup Data

Export your documents from the current database
2

Configure New Database

Update environment variables or admin settings
3

Restart Open WebUI

docker restart open-webui
4

Re-index Documents

Upload documents again or trigger re-indexing

RAG Configuration

Embedding Models

Open WebUI uses embedding models to convert text to vectors:
# Default sentence-transformers
sentence-transformers==5.2.2
Common models:
  • all-MiniLM-L6-v2 (default, 384 dims)
  • all-mpnet-base-v2 (768 dims)
  • text-embedding-3-small (OpenAI, 1536 dims)
File: backend/requirements.txt:60

Chunk Configuration

Control how documents are split:
CHUNK_SIZE=1000
CHUNK_OVERLAP=200

Retrieval Settings

TOP_K=5  # Number of chunks to retrieve
SIMILARITY_THRESHOLD=0.7  # Minimum similarity score

Performance Tuning

Index Type

Choose appropriate index (HNSW, IVF, FLAT) based on dataset size

Dimension Reduction

Use smaller embedding models for better performance

Batch Processing

Index documents in batches for efficiency

Caching

Enable result caching for repeated queries

Troubleshooting

  1. Verify database is running: docker ps or check service status
  2. Check connection string/URL format
  3. Verify credentials (API key, username, password)
  4. Check network connectivity and firewall rules
  5. Review database logs for errors
  • Optimize index configuration
  • Reduce embedding dimensions
  • Decrease TOP_K value
  • Add more resources to database
  • Enable caching
  • Use disk-based storage instead of in-memory
  • Reduce batch size during indexing
  • Scale database resources
  • Archive old/unused collections

Best Practices

  1. Choose Based on Scale:
    • Small datasets: ChromaDB
    • Medium: PGVector, Qdrant
    • Large: Milvus, Elasticsearch
    • Managed: Pinecone, Qdrant Cloud
  2. Monitor Performance:
    • Track query latency
    • Monitor index size
    • Watch memory usage
  3. Backup Strategy:
    • Regular database backups
    • Document source preservation
    • Embedding model versioning
  4. Security:
    • Use authentication
    • Enable TLS/SSL
    • Network isolation
    • API key rotation

References