# =============================================================================
# requirements.txt – Pinned-ish dependencies for the zero-shot classification
# template.  Tested with Python 3.10 / 3.11 / 3.12.
# =============================================================================

# ── Core model dependencies ───────────────────────────────────────────────────
# Hugging Face Transformers (NLI / zero-shot pipeline)
transformers>=4.40.0,<5.0.0

# PyTorch – CPU build by default; replace with the CUDA wheel for GPU support.
# See https://pytorch.org/get-started/locally/ for the correct wheel URL.
torch>=2.2.0,<3.0.0

# Tokenizers backend (required by transformers)
tokenizers>=0.19.0,<1.0.0

# Sentence-piece tokeniser (needed by XLM-R and other multilingual models)
sentencepiece>=0.2.0

# ── Data utilities ────────────────────────────────────────────────────────────
# Hugging Face Datasets (optional; used when loading datasets from the Hub)
datasets>=2.18.0,<4.0.0

# ── API ───────────────────────────────────────────────────────────────────────
fastapi>=0.111.0,<1.0.0
uvicorn[standard]>=0.29.0,<1.0.0
pydantic>=2.7.0,<3.0.0

# ── UI ────────────────────────────────────────────────────────────────────────
streamlit>=1.35.0,<2.0.0
pandas>=2.2.0,<3.0.0

# ── Configuration & utilities ─────────────────────────────────────────────────
PyYAML>=6.0.1,<7.0.0
python-dotenv>=1.0.1,<2.0.0

# ── Testing ───────────────────────────────────────────────────────────────────
pytest>=8.2.0,<9.0.0
pytest-asyncio>=0.23.0,<1.0.0
httpx>=0.27.0,<1.0.0       # required by FastAPI TestClient

# ── Optional: vision models (uncomment if using image classification) ─────────
# Pillow>=10.3.0

# ── Optional: audio models (uncomment if using audio classification) ──────────
# librosa>=0.10.2
# soundfile>=0.12.1
# ffmpeg-python>=0.2.0
