Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Environment:Marker Inc Korea AutoRAG Vector Database Backends

From Leeroopedia


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.

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment