Description
Add a ChromaRetriever backed by ChromaDB, a popular open-source vector database with persistent storage and metadata filtering.
Motivation
ChromaDB provides on-disk persistence, rich metadata filtering, and a simple Python API — ideal for prototype-to-production workflows where data must survive process restarts.
Acceptance criteria
Files to touch
ragframework/retriever/chroma.py — new file
ragframework/retriever/__init__.py — export it
tests/test_retriever/test_chroma.py — new test file
Resources
- ChromaDB docs
InMemoryRetriever in ragframework/retriever/in_memory.py as reference
Description
Add a
ChromaRetrieverbacked by ChromaDB, a popular open-source vector database with persistent storage and metadata filtering.Motivation
ChromaDB provides on-disk persistence, rich metadata filtering, and a simple Python API — ideal for prototype-to-production workflows where data must survive process restarts.
Acceptance criteria
ChromaRetrieverinragframework/retriever/chroma.pyRetrieverfromragframework/base.pychromadb(already listed in[chromadb]optional extra inpyproject.toml)client = chromadb.Client()) and persistent (chromadb.PersistentClient(path=...)) modes via constructor argumentRetrieverErroron failureragframework/retriever/__init__.pyCHANGELOG.mdupdated under[Unreleased]Files to touch
ragframework/retriever/chroma.py— new fileragframework/retriever/__init__.py— export ittests/test_retriever/test_chroma.py— new test fileResources
InMemoryRetrieverinragframework/retriever/in_memory.pyas reference