EmpathRAG / requirements.txt
MukulRay's picture
Pin fastapi==0.115.5 and starlette==0.41.3: starlette 1.0 broke gradio 4.44.1 TemplateResponse signature
3d55aee
Raw
History Blame Contribute Delete
1.86 kB
# EmpathRAG — Slim runtime dependencies
#
# These are the packages the live Gradio demo and the Hugging Face Space
# actually import at runtime. For the full training/baseline stack
# (RoBERTa, DeBERTa, Mistral, FAISS, etc.), use requirements-dev.txt.
# Demo UI
gradio==4.44.1
# gradio 4.44.1 still imports HfFolder, which was removed in huggingface_hub 1.0.
# Pin to the 0.x line so the resolver does not pull 1.x from the HF Spaces base
# image (which installs huggingface_hub>=0.30 with no upper bound).
huggingface_hub>=0.30,<1.0
# Pydantic 2.11+ emits JSON schemas with `additionalProperties: true` (boolean),
# which the gradio_client 1.3.0 bundled with gradio 4.44.1 cannot parse — it
# crashes with "TypeError: argument of type 'bool' is not iterable" the first
# time the API info endpoint is hit. Pinning to 2.10.6 keeps schemas as dicts.
pydantic==2.10.6
# Starlette 1.0 dropped the old `TemplateResponse(name, context)` positional
# signature in favor of `TemplateResponse(request, name, context)`. Gradio
# 4.44.1 still calls the old signature, so the context dict gets passed as
# the template name and jinja2 raises "unhashable type: 'dict'". Pin both
# fastapi and starlette to versions matching what gradio 4.44.1 was tested on.
fastapi==0.115.5
starlette==0.41.3
# Hybrid route classifier (TF-IDF + logistic regression).
# Loose lower bounds so the resolver picks wheels compatible with the
# Python version configured in the README YAML (currently 3.10).
scikit-learn>=1.3,<2.0
scipy>=1.11,<2.0
numpy>=1.26,<3.0
# Tabular utilities
pandas>=2.0,<3.0
# Support-plan PDF export (uses bundled DejaVu font for Unicode)
fpdf2==2.8.4
matplotlib>=3.7,<4.0
# Local development convenience (.env loading)
python-dotenv>=1.0
# HTTP client (Groq + Anthropic API calls)
requests>=2.31
# Progress bars (used by some scripts)
tqdm>=4.67