| # Hugging Face token - needed for the leaderboard Dataset and any gated model downloads. | |
| HF_TOKEN= | |
| # Modal (modal.com) - guardian GPU backend. Get deploy creds via `modal token new`. | |
| MODAL_TOKEN_ID= | |
| MODAL_TOKEN_SECRET= | |
| MODAL_ENDPOINT= # MiniCPM Modal URL (after `modal deploy modal_app.py`) | |
| MODAL_API_KEY= # shared secret: set on Modal (`modal secret create`) + here on the Space | |
| NEMOTRON_MODAL_ENDPOINT= # Nemotron Modal URL (see modal_app.py deploy notes) | |
| MODAL_MIN_CONTAINERS=0 # 1 = keep one warm L4 replica for demos (~$0.80/hr); 0 = scale-to-zero | |
| GUARDIAN_BACKEND=modal # modal (primary) | llama_cpp (offline) | mock (no model) | |
| # Guardian models (override to retune). Ids verified on Hugging Face, Jun 2026. | |
| GUARDIAN_HF_MODEL=openbmb/MiniCPM4-8B # Modal GPU primary (OpenBMB) | |
| GUARDIAN_GGUF_REPO=openbmb/MiniCPM4-8B-GGUF # llama.cpp fallback / Offline Mode | |
| GUARDIAN_GGUF_FILE=MiniCPM4-8B-Q4_K_M.gguf # verified in openbmb/MiniCPM4-8B-GGUF | |
| NEMOTRON_GGUF_REPO=bartowski/nvidia_Nemotron-Mini-4B-Instruct-GGUF | |
| NEMOTRON_GGUF_FILE=Nemotron-Mini-4B-Instruct-Q4_K_M.gguf | |
| # Optional: Unplug ML classifier override. Leave unset to use the catalog (unplug-tiny at L5). | |
| UNPLUG_MODEL_PATH= | |
| # Datasets - leaderboard + attack-corpus flywheel (created on first run). | |
| LEADERBOARD_DATASET=chiruu12/jailbreak-dojo-leaderboard | |
| CORPUS_DATASET=chiruu12/jailbreak-dojo-corpus | |