# --- Web API --- fastapi>=0.115.0 uvicorn[standard]>=0.30.6 pydantic>=2.9.2 python-multipart>=0.0.6 # --- Config --- python-dotenv>=1.0.1 # --- Database / pgvector --- psycopg[binary]>=3.2.3 pgvector>=0.2.5 # --- Embeddings (RAG retrieval) --- # sentence-transformers pulls in its own CPU-friendly torch wheel # automatically - no need to pin torch separately. Imports are LAZY # (see app/services/embeddings_service.py) so the API still boots fast # even before this is installed/loaded. sentence-transformers>=3.0.1 # --- HTTP clients --- requests>=2.31.0 aiohttp>=3.9.5 httpx>=0.27.2 # --- Catalog ingestion pipeline (discovery / images / pricing) --- # Only required if you plan to run cli/ingest_brand.py or # POST /api/catalog/generate to pull in NEW brands. If you only ever use # the bundled seed data (scripts/seed_sample_data.py) + RAG chat/search, # you can skip everything below this line. beautifulsoup4>=4.12.3 lxml>=4.9.3 python-slugify>=8.0.4 ddgs>=9.14.4 Pillow>=10.0.0 aiofiles>=23.2.1 # Playwright (Python) - last-resort image-search fallback only. # Run `playwright install chromium` once after pip install to enable it; # the pipeline works fine without it (just one fewer fallback source). playwright>=1.47.0 # --- S3 / DigitalOcean Spaces (optional product image storage) --- boto3>=1.34.162 # --- ML / analytics (app/intelligence/*, incl. nutrition similarity & --- # --- clustering) - CPU-only estimators only (GradientBoosting/Random- --- # --- Forest/KMeans/NearestNeighbors), no GPU dependency, per the 8GB --- # --- RAM / CPU-only environment this project targets. Was already an --- # --- implicit dependency (app/intelligence/*.py imports these) but was --- # --- missing from this file - declared explicitly now. --- scikit-learn>=1.5.2 pandas>=2.2.2 numpy>=1.26.4 scipy>=1.13.1 joblib>=1.4.2 # --- Dev/test tooling --- pytest>=8.3.3