Spaces:
Sleeping
Sleeping
| # Copy to .env and fill in your values. | |
| # Settings here override the defaults in config/settings.py. | |
| # Active tier: "primary" | "fallback" | |
| ACTIVE_LLM_TIER=primary | |
| # Both tiers hit Ollama Cloud over the OpenAI-compatible endpoint. | |
| # Use a larger model on primary; the fallback fires when cumulative | |
| # latency exceeds FALLBACK_LATENCY_THRESHOLD seconds. | |
| PRIMARY_BASE_URL=http://localhost:11434/v1 | |
| PRIMARY_MODEL=gemma4:31b-cloud | |
| PRIMARY_API_KEY=ollama | |
| FALLBACK_BASE_URL=http://localhost:11434/v1 | |
| FALLBACK_MODEL=gemma4:31b-cloud | |
| FALLBACK_API_KEY=ollama | |
| # Per-turn logs are written as JSONL to <LOGS_DIR>/turns.jsonl | |
| LOGS_DIR=logs | |
| # off | strip | full | suppress | |
| THINKING_MODE=off | |
| THINKING_TOKEN_BUDGET=4096 | |
| FALLBACK_LATENCY_THRESHOLD=3.5 | |
| # Vision model used by /ink/recognize (needs image_url support). | |
| # Routed via Google AI Studio's OpenAI-compatible endpoint — gemma4:31b-cloud | |
| # advertises vision support but Ollama Cloud's tier gating made image inputs | |
| # unreliable, so air-writing recognition uses Gemini 2.0 Flash instead. | |
| # Get a key at: https://aistudio.google.com/apikey | |
| INK_VISION_MODEL=gemini-2.0-flash | |
| INK_VISION_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai/ | |
| INK_VISION_API_KEY= | |
| # Frontend flags (VITE_ prefix required for Vite to expose them to the browser). | |
| # Set to "false" to disable air-writing stroke capture and ink recognition. | |
| VITE_AIRWRITING_ENABLED=true | |
| # Set to "false" to disable gaze zone tracking and bucket firing. | |
| VITE_GAZE_ENABLED=true | |
| # Set to "true" only if top/bottom gaze buckets are swapped on your device. | |
| VITE_GAZE_INVERT_Y=false | |
| # Set to "false" to skip the per-user calibration window at session start. | |
| # Detectors will fall back to fixed thresholds — only use for debugging. | |
| VITE_CALIBRATION_ENABLED=true | |