Environment:Marker Inc Korea AutoRAG Vector Database Backends
| Knowledge Sources | |
|---|---|
| Domains | Infrastructure, RAG |
| Last Updated | 2026-02-08 06:00 GMT |
Overview
Vector database backends (Chroma, Milvus, Qdrant, Pinecone, Weaviate, Couchbase) required for semantic retrieval in AutoRAG pipelines.
Description
AutoRAG supports six vector database backends for storing and retrieving embeddings during semantic retrieval. Each backend has its own connection requirements, ranging from local embedded databases (Chroma persistent) to fully managed cloud services (Pinecone, Qdrant Cloud). The vector database configuration is specified in the YAML pipeline config and determines where corpus embeddings are stored and queried.
Usage
Use this environment when configuring the vectordb section of your YAML pipeline config. At least one vector database backend must be available for semantic retrieval nodes. ChromaDB with persistent client is the simplest setup for local development; cloud services are recommended for production.
System Requirements
| Category | Requirement | Notes |
|---|---|---|
| OS | Linux, macOS, Windows | All backends have Python clients |
| Disk | Varies by backend | ChromaDB persistent: local storage needed; Cloud: none |
| Network | Required for cloud backends | Pinecone, Qdrant Cloud, Weaviate Cloud, Couchbase |
Dependencies
All vector database client libraries are included in the base AutoRAG installation:
Python Packages
- `chromadb` >= 1.0.0 — ChromaDB (local or cloud)
- `pymilvus` >= 2.6.0b0 — Milvus (local Docker or cloud)
- `qdrant-client` >= 1.12.1 — Qdrant (local Docker or cloud)
- `pinecone[grpc]` — Pinecone (cloud only)
- `weaviate-client` >= 4.15.2 — Weaviate (local Docker or cloud)
- `couchbase` >= 4.4.0 — Couchbase (local or cloud)
External Services (per backend)
- Chroma (persistent): No external service; uses local filesystem.
- Chroma (http): Chroma server running at `host:port`.
- Milvus: Milvus server at `uri` (default: `http://localhost:19530`).
- Qdrant (docker): Qdrant server at `url` (default: `http://localhost:6333`).
- Qdrant (cloud): Qdrant Cloud with `host` and `api_key`.
- Pinecone: Pinecone Cloud with `api_key`.
- Weaviate: Weaviate server with connection parameters.
- Couchbase: Couchbase cluster at `connection_string` with `username` and `password`.
Credentials
See Environment:Marker_Inc_Korea_AutoRAG_API_Keys_And_Credentials for vector database credentials. Credentials are passed via YAML config parameters, not environment variables.
Quick Install
# All vector DB clients are included in base AutoRAG
pip install AutoRAG
# For local Milvus (Docker)
docker run -d --name milvus -p 19530:19530 milvusdb/milvus:latest
# For local Qdrant (Docker)
docker run -d --name qdrant -p 6333:6333 qdrant/qdrant:latest
# For local Chroma (persistent), no setup needed — uses filesystem
Code Evidence
Chroma client type selection in `autorag/vectordb/chroma.py:24-34`:
client_type: str = "persistent",
path: str = None,
host: str = "localhost",
port: int = 8000,
ssl: bool = False,
headers: Optional[Dict[str, str]] = None,
api_key: Optional[str] = None,
Milvus connection in `autorag/vectordb/milvus.py:29-46`:
connections.connect(
"default",
uri=uri,
token=token,
db_name=db_name,
user=user,
password=password,
)
Qdrant client type branching in `autorag/vectordb/qdrant.py:56-69`:
if client_type == "docker":
self.client = QdrantClient(url=url)
elif client_type == "cloud":
self.client = QdrantClient(host=host, api_key=api_key)
Empty corpus guard in `autorag/nodes/semanticretrieval/vectordb.py:280`:
logger.warning("The corpus data is empty. Nothing to ingest.")
return
Common Errors
| Error Message | Cause | Solution |
|---|---|---|
| `Failed to load collection` (Milvus) | Collection not created or server down | Verify Milvus server is running; run ingest first |
| `The corpus data is empty. Nothing to ingest.` | Empty corpus passed to vectordb ingest | Check corpus parquet file has non-empty contents |
| Connection refused on port 19530/6333 | Vector DB server not running | Start Docker container for Milvus/Qdrant |
| `bm25_path does not exist. Please ingest first.` | BM25 index not built | Run corpus ingestion before retrieval |
Compatibility Notes
- Chroma persistent is the simplest setup (no external service needed), ideal for local development and testing.
- Pinecone is cloud-only; there is no local option.
- Milvus and Qdrant support both local Docker and cloud deployment.
- Embedding batch size defaults to 128 for vectordb ingestion to prevent API rate limiting.