reference

Vector Store

The default local sqlite-vec backend and the Qdrant stack behind the scale profile.

Updated

The vector backend follows the retrieval profile you chose at setup. The default local profile uses sqlite-vec: dense vectors live in a local file beside the SQLite index, and embeddings come from the vendored potion-base-8M model. That path requires no API key, daemon, model download, or network access.

Default sqlite-vec backend

vector_store:
  provider: sqlite-vec
  collection: docmancer_docs
  options:
    db_path: ~/.docmancer/sqlite-vec.db

embeddings:
  provider: model2vec
  model: minishlab/potion-base-8M
  dimensions: 256

Memory uses its own sqlite-vec file co-located with memory.db; docs use the configured docs vector path. Separate projects can therefore keep isolated vector state without a shared service.

Lexical-only operation

DOCMANCER_AUTO_VECTORS=0 docmancer docs add ./docs
docmancer docs add ./docs --no-vectors

FTS5 remains available for exact names, flags, error messages, and other lexical queries.

The scale profile

Switch to Qdrant when you need FastEmbed dense embeddings, sparse SPLADE retrieval, filtered vector search, or sustained concurrent ingestion, roughly in the 50,000 to 100,000 document range:

pipx install 'docmancer[embeddings-heavy]'
docmancer qdrant up
docmancer setup --profile scale

Setup writes the matching configuration for you:

retrieval:
  profile: scale

vector_store:
  provider: qdrant
  collection: docmancer

embeddings:
  provider: fastembed
  sparse_model: prithivida/Splade_PP_en_v1

The scale profile also stops writing one extracted file per source and keeps that content in SQLite instead.

The docmancer qdrant up|down|status|upgrade|logs command group manages a Docmancer-owned local Qdrant. Ownership sentinels prevent Docmancer from claiming or deleting foreign collections and refuse to stop foreign PIDs, and telemetry is disabled for managed processes.

Both profiles implement the same memory semantics. Switching changes storage, embeddings, sparse retrieval, and operational capacity, not authority, lifecycle, provenance, or conflict handling. Qdrant does not fix poor source coverage or weak evaluation. If the backend is unavailable, docmancer status reports the failure and you can return to --profile local.

Combination

Vector sync tracks content hashes, skips unchanged sections, prunes points whose SQLite sections no longer exist, and rebuilds changed embeddings. docmancer docs list and docmancer status report section and vector counts so drift remains visible.