# =============================================================================
#  requirements.txt — DemIA Image Captioning Starter
#
#  Install with:
#    pip install -r requirements.txt
#
#  PyTorch is NOT listed here because the installation command differs by
#  platform/CUDA version. Install it first via scripts/setup.sh or:
#    # CPU-only:
#    pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu
#    # CUDA 11.8:
#    pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118
# =============================================================================

# ── Hugging Face ecosystem ────────────────────────────────────────────────────
transformers>=4.37.0,<5.0.0       # image-to-text pipeline, BLIP, ViT-GPT2, GIT
huggingface-hub>=0.20.0           # model/dataset download helpers
tokenizers>=0.15.0                # fast Rust-backed tokenisers (HF dependency)
safetensors>=0.4.0                # fast/safe model weight serialisation
accelerate>=0.27.0                # multi-GPU / CPU offload for large models

# ── Vision ────────────────────────────────────────────────────────────────────
Pillow>=10.0.0                    # image loading, format conversion (REQUIRED)
torchvision>=0.17.0               # image transforms used by some HF processors

# ── API ───────────────────────────────────────────────────────────────────────
fastapi>=0.110.0                  # REST API framework
uvicorn[standard]>=0.29.0        # ASGI server for FastAPI
pydantic>=2.6.0                   # request/response validation

# ── UI ────────────────────────────────────────────────────────────────────────
gradio>=4.25.0                    # Gradio web UI

# ── Config & utilities ───────────────────────────────────────────────────────
pyyaml>=6.0.1                     # YAML config file parsing
python-dotenv>=1.0.0             # .env file loading
numpy>=1.24.0                     # array utilities and seeding

# ── Testing ───────────────────────────────────────────────────────────────────
pytest>=8.0.0                     # test runner
pytest-cov>=5.0.0                 # coverage reporting
httpx>=0.27.0                     # async HTTP client (FastAPI TestClient)
