7535feb445
Ships the production serving path (FastAPI upload/map UI + statistical device-category identification) as a lean, reproducible container: - Dockerfile: python:3.10-slim, non-root user, /health HEALTHCHECK, serves uvicorn src.api.main_simple:app. Bakes in the joblib category model and the static rtl_433 protocol table; excludes the 11 GB test corpora and the benched Phase 3B CNN binaries. Built image is 417 MB. - requirements-prod.txt: pins matched to the versions that actually train/serve the model (scikit-learn 1.6.1 / numpy 2.2.6) so joblib.load() stays valid. torch/onnx intentionally absent — the CNN is benched, not on the serving path. - docker-compose.yml: single service, named volume seeds from baked data/ on first run then persists captures_simple.json writes across restarts. - .dockerignore: keeps data/, venv/, vendored firmware, docs out of the image. Validated: image builds, container reports healthy, and the statistical classifier loads + predicts inside the container. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
31 lines
976 B
Plaintext
31 lines
976 B
Plaintext
# GigLez production runtime — the LIVE simple-mode path only
|
|
# (src/api/main_simple.py → SignatureMatcher → pattern_decoder → statistical ML).
|
|
#
|
|
# Versions are pinned to what actually trained/serves the model in this env.
|
|
# In particular scikit-learn/numpy MUST match the versions the
|
|
# models/category_classifier.joblib bundle was built with (1.6.1 / 2.2.x),
|
|
# or joblib.load() will warn/break. Do NOT downgrade to the old
|
|
# requirements.txt pins — those drive the dormant SQLAlchemy/PostGIS path.
|
|
#
|
|
# NOTE: torch/onnx are intentionally absent — the Phase 3B CNN is benched
|
|
# (loses to the statistical model), so it is not part of the serving path.
|
|
|
|
# Web stack
|
|
fastapi==0.121.1
|
|
starlette==0.46.0
|
|
uvicorn[standard]==0.31.1
|
|
jinja2==3.1.6
|
|
python-multipart==0.0.22
|
|
pydantic==2.12.4
|
|
|
|
# Numerics + statistical ML (RAW category classifier)
|
|
numpy==2.2.6
|
|
scipy==1.15.3
|
|
scikit-learn==1.6.1
|
|
joblib==1.5.3
|
|
|
|
# Support
|
|
loguru==0.7.2
|
|
pyyaml==6.0.2
|
|
python-dateutil==2.9.0.post0
|