Spaces:
Sleeping
Sleeping
| # Copy this to .env and fill in. Do NOT commit .env. | |
| # Voice + Indic translation β Sarvam AI (STT, TTS, Indic translation) | |
| SARVAM_API_KEY=sk_your_sarvam_api_key_here | |
| # (legacy β embeddings now run locally via BGE-small; this is kept only for back-compat | |
| # with old extracted/ artifacts.) | |
| VOYAGE_API_KEY=pa-your_voyage_key_here | |
| # NVIDIA NIM β single provider for the entire reasoning stack: | |
| # Brain = qwen/qwen3-next-80b-a3b-instruct (Qwen 80B, primary) | |
| # Judge = mistralai/mistral-large-3-675b-instruct-2512 (Mistral Large 3, different family from brain) | |
| # Free tier: 40 req/min, no daily cap, no card. Get a key at https://build.nvidia.com. | |
| NVIDIA_NIM_API_KEY=nvapi-your_nim_key_here | |
| # --------------------------------------------------------------------------- | |
| # CROSS-PROVIDER FALLBACKS (optional but recommended) | |
| # --------------------------------------------------------------------------- | |
| # Last-resort entries appended to BRAIN_CHAIN + FAST_BRAIN_CHAIN + JUDGE_CHAIN | |
| # so the brain + judge survive a FULL NIM outage (regional ingress brownout, | |
| # pool-wide 5xx, DNS, etc.). NIM remains primary β these only get hit after | |
| # every NIM candidate in the chain has failed. Both keys are optional: if | |
| # unset the corresponding fallback is simply skipped and the chain continues. | |
| # OpenRouter β aggregates dozens of free + paid OSS models behind one API. | |
| # Free-tier model 'openai/gpt-oss-120b' is the cross-provider fallback used | |
| # in BRAIN_CHAIN + JUDGE_CHAIN. Get a key at https://openrouter.ai/keys | |
| OPENROUTER_API_KEY=sk-or-your_openrouter_key_here | |
| # Groq β LPU inference, lowest TTFT of any free-tier 70B option. | |
| # 'llama-3.3-70b-versatile' is the cross-provider fallback used at the bottom | |
| # of BRAIN_CHAIN + FAST_BRAIN_CHAIN + JUDGE_CHAIN. Get a key at | |
| # https://console.groq.com/keys | |
| GROQ_API_KEY=gsk_your_groq_key_here | |
| # Hugging Face β used by tools/upload_*.py for Space + dataset sync | |
| HF_TOKEN=hf_your_token_here | |
| # --------------------------------------------------------------------------- | |
| # Admin control panel (LLM control UI) | |
| # --------------------------------------------------------------------------- | |
| # The /admin/llm-control.html page + /api/admin/* endpoints are HIDDEN from | |
| # non-allowlisted callers. BOTH gates must pass: | |
| # 1. Client IP must match one of the IPs in ADMIN_IP_ALLOWLIST (comma-sep) | |
| # 2. Request must include header X-Admin-Password matching ADMIN_PASSWORD | |
| # Unauthorized requests get 404 (not 401) so the existence of /api/admin/* is | |
| # concealed. Set BOTH or admin endpoints are disabled by default. | |
| # Find your public IP at https://api.ipify.org (run from where you'll use admin) | |
| ADMIN_IP_ALLOWLIST=your.public.ip.here | |
| # A strong unique passphrase. Min 16 chars recommended. Keep out of git. | |
| ADMIN_PASSWORD=replace_with_a_strong_random_passphrase | |