# Backend dependencies for the HuggingFace API Space and local development. # sentence-transformers is NOT included here — in prod, embedder/reranker # are separate HF Spaces. For local in-process models, install it manually # or create a requirements.local.txt with sentence-transformers added. # mlflow/dagshub are intentionally excluded: they add ~300MB to the Docker # image and are imported lazily only when DAGSHUB_TOKEN is set. Install them # in requirements.local.txt for local experiment tracking. fastapi>=0.115.0 uvicorn[standard]>=0.29.0 uvloop>=0.19.0 python-multipart>=0.0.9 pydantic-settings>=2.2.1 langgraph>=0.2.0 qdrant-client==1.9.1 groq>=0.5.0 httpx>=0.27.0 numpy>=1.26.0 slowapi>=0.1.9 # presidio-analyzer was removed (Issue 4): spaCy-based NLP added 50-100ms to every # request for near-zero real-world PII risk. Replaced with six compiled regex # patterns in sanitizer.py that run in microseconds. See copilot-instructions.md. tenacity>=8.3.0 python-jose[cryptography]>=3.3.0 google-genai>=1.0.0 # fastembed: powers BM25 sparse retrieval (Stage 2). Qdrant/bm25 vocabulary # downloads ~5 MB on first use then runs fully local — no GPU, no network at query time. fastembed>=0.3.6 toon_format @ git+https://github.com/toon-format/toon-python.git