"""Shared ChromaDB client factory. Uses persistent storage on Hugging Face Spaces (/data/chroma) by default. Set CHROMA_CLIENT_MODE=http for docker-compose with a separate ChromaDB service. """ import chromadb from app.config import get_settings _client = None def get_chroma_client(): """Return a cached ChromaDB client.""" global _client if _client is None: cfg = get_settings() if cfg.CHROMA_CLIENT_MODE == "http": _client = chromadb.HttpClient( host=cfg.CHROMA_HOST, port=cfg.CHROMA_PORT, ) else: _client = chromadb.PersistentClient(path=cfg.CHROMA_PERSIST_DIR) return _client