| # Copy to .env and fill in. All values have safe local-dev defaults. | |
| # --- storage --- | |
| # Local dev default = SQLite (zero setup). For the full stack use Postgres: | |
| # DATABASE_URL=postgresql+psycopg://avis:avis@localhost:5432/avis | |
| DATABASE_URL=sqlite:///./avis.db | |
| IMAGE_DIR=./data/images | |
| # --- models --- | |
| DETECTOR_WEIGHTS=yolo11n.pt | |
| # Local helmet YOLO model. The repo ships one at models/helmet/best.pt (7-class: | |
| # driver/passenger x with/without helmet). With this set, helmet detection runs fully | |
| # offline (ZERO API calls). If empty AND LLM_PROVIDER=gemini, Gemini reads helmets per | |
| # rider (uses quota). If empty and no Gemini, helmet stays undetermined -> VLM/human. | |
| HELMET_WEIGHTS=models/helmet/best.pt | |
| HELMET_CONF=0.35 # confidence floor for the helmet model | |
| HELMET_MATCH_IOU=0.4 # IoU to link a helmet box to a detected rider | |
| # Seatbelt (Tier B) is verified by the VLM, so it costs Gemini quota. Off by default; | |
| # set true only when you want seatbelt candidates during a demo. | |
| SEATBELT_CHECK=false | |
| # --- plates --- | |
| # PLATE_PROVIDER: null (off) | fastalpr (requires `pip install fast-alpr onnxruntime`) | |
| # With a Gemini key set, fast-alpr automatically falls back to Gemini when it reads nothing. | |
| PLATE_PROVIDER=fastalpr | |
| # --- VLM (free) --- | |
| # LLM_PROVIDER: null (no VLM, escalate to human) | gemini | |
| LLM_PROVIDER=null | |
| GEMINI_API_KEY= | |
| # Model served via the "gemini" provider (google-genai SDK). Options: | |
| # gemma-3-27b-it -> highest free limits (~30 RPM / ~15,000 RPD), vision-capable (recommended) | |
| # gemma-3-12b-it / gemma-3-4b-it -> lighter/faster, same free limits | |
| # gemini-2.5-flash -> stronger JSON adherence but ~10 RPM / ~250 RPD | |
| # NOTE: must be a vision model (gemma 1b is text-only and fails on image input). | |
| GEMINI_MODEL=gemma-3-27b-it | |
| # --- routing thresholds / fusion weights (tune in config, not in code) --- | |
| AUTO_CONFIRM_THRESHOLD=0.85 | |
| REVIEW_THRESHOLD=0.55 | |