Adds chromadb as a VECTOR_STORE_TYPE with three client modes selected by
VECTOR_STORE_CHROMA_CLIENT_MODE: persistent (local embedded), http
(self-hosted server), and cloud (Chroma Cloud).
- Single sync-client code path offloaded via asyncio.to_thread (Chroma's
persistent and cloud clients have no async variants)
- Namespaces map to collections as ns-{sha256hex}; original namespace kept
in collection metadata
- Cosine space, precomputed embeddings only, lazy collection creation
- Write batches split at min(get_max_batch_size(), 300) for the Chroma
Cloud per-request cap; None-valued metadata stripped for portability
- Transport failures raise VectorStoreError on writes (reconciler retries)
and return empty results on queries, matching the Turbopuffer backend
- Ships as an optional extra (uv sync --extra chromadb) plus dev group;
factory raises an actionable error when the SDK is missing
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| __init__.py | ||
| test_chroma.py | ||
| test_lancedb.py | ||
| test_namespace_dim_probes.py | ||
| test_turbopuffer.py | ||