# Dépendances de la vitrine Cinoc (Space lecture seule). # Le cœur + l'extra [serve] uniquement — aucun moteur (tesseract/LLM) n'est servi. # Épinglé pour la reproductibilité du Space (cf. §12) ; relever au besoin. pydantic>=2,<3 lxml>=5 pyyaml>=6 scipy>=1.11 # numpy : dépendance directe de evaluation/. Plafond <2.5 (stubs PEP 695 # incompatibles avec mypy ciblant 3.11) — cohérent avec pyproject. numpy<2.5 rapidfuzz>=3,<4 fastapi>=0.115,<1 uvicorn>=0.30,<1 jinja2>=3.1,<4 python-multipart>=0.0.9,<1 # httpx : la vitrine importe les importeurs de corpus (couche 5) → transport HTTP. # httpcore : moteur de httpx (co-installé) — épinglage d'IP anti-DNS-rebinding. httpx>=0.27,<1 httpcore>=1,<2 # Moteur cloud OPT-IN (Mistral) : permet les runs OCR→LLM / VLM sur un Space # **privé** qui ouvre la surface (``CINOC_PUBLIC_MODE=false`` + secret # ``MISTRAL_API_KEY``). SDK léger (aucune dépendance lourde / GPU). En mode public # (le défaut), les moteurs cloud restent **masqués** : ce paquet est inutilisé. mistralai>=1.5,<2 # Socle OCR gratuit (Tesseract) : wrapper Python pur du binaire ``tesseract``. # **Effectif uniquement dans l'image moteur** (deploy/Dockerfile.engine, qui bake # le binaire + les langues). Dans la vitrine lecture seule (sans binaire), il reste # **inerte** : importé paresseusement, jamais exécuté → tesseract y est indisponible. pytesseract>=0.3.10,<1