# =============================================================================
# Sentence Transformers Search Starter – Python dependencies
# =============================================================================
# Version pins are "pinned-ish" (major.minor) to allow patch-level updates
# while preventing breaking changes.
#
# Extra optional deps (uncomment as needed):
#   Large-corpus FAISS index : faiss-cpu>=1.8  (or faiss-gpu for CUDA)
#   Multilingual tokenisers  : sentencepiece>=0.1.99
#   Datasets loading         : datasets>=2.18
# =============================================================================

# ---------------------------------------------------------------------------
# Core – sentence embeddings + similarity search
# ---------------------------------------------------------------------------
sentence-transformers>=2.7,<4.0
transformers>=4.40,<5.0
torch>=2.2,<3.0               # CPU build is fine; GPU users install CUDA extras
huggingface-hub>=0.22,<1.0
tokenizers>=0.19,<1.0
numpy>=1.26,<3.0

# ---------------------------------------------------------------------------
# Configuration & environment
# ---------------------------------------------------------------------------
PyYAML>=6.0,<7.0
python-dotenv>=1.0,<2.0

# ---------------------------------------------------------------------------
# API service
# ---------------------------------------------------------------------------
fastapi>=0.111,<1.0
uvicorn[standard]>=0.29,<1.0
pydantic>=2.7,<3.0
httpx>=0.27,<1.0              # used by FastAPI TestClient in tests

# ---------------------------------------------------------------------------
# UI
# ---------------------------------------------------------------------------
gradio>=4.30,<5.0

# ---------------------------------------------------------------------------
# Testing
# ---------------------------------------------------------------------------
pytest>=8.0,<9.0
pytest-asyncio>=0.23,<1.0

# ---------------------------------------------------------------------------
# Optional – uncomment as needed
# ---------------------------------------------------------------------------
# faiss-cpu>=1.8,<2.0         # fast ANN index for large corpora
# faiss-gpu>=1.8,<2.0         # GPU variant (requires CUDA)
# sentencepiece>=0.1.99        # required by some multilingual tokenisers
# datasets>=2.18,<3.0          # HF Datasets for corpus loading
