# ======================================== # Janus - AI Intelligence System # Environment Configuration Template # ======================================== # Copy this file to .env and fill in your actual values. # NEVER commit .env to version control. # ---------- Application Version ---------- APP_VERSION=0.4.0 # ---------- Primary model routing ---------- # PRIMARY_PROVIDER: The main LLM provider (huggingface, openrouter, ollama, or openai) # FALLBACK_PROVIDER: The backup provider if primary fails PRIMARY_PROVIDER=huggingface FALLBACK_PROVIDER=openrouter # ---------- HuggingFace Inference API ---------- # Get your API key from: https://huggingface.co/settings/tokens # Required permissions: "Make calls to Inference Providers" HUGGINGFACE_API_KEY=hf_... HUGGINGFACE_MODEL=Qwen/Qwen2.5-7B-Instruct # ---------- Smart LLM Router ---------- # Priority: Gemini → Groq → OpenRouter → Cloudflare → Ollama # Get keys from respective providers (all free tiers available) GEMINI_API_KEY=AIza... # https://aistudio.google.com/apikey (1500 req/day free) GROQ_API_KEY=gsk_... # https://console.groq.com/keys (fast, 14400 req/day free) CLOUDFLARE_ACCOUNT_ID=... # https://dash.cloudflare.com (10k req/day free) CLOUDFLARE_API_TOKEN=... # ---------- OpenRouter ---------- # Get your API key from: https://openrouter.ai/keys OPENROUTER_API_KEY=sk-or-v1-YOUR_KEY_HERE OPENROUTER_BASE_URL=https://openrouter.ai/api/v1 OPENROUTER_CHAT_MODEL=openrouter/free OPENROUTER_REASONER_MODEL=openrouter/free OPENROUTER_SITE_URL=http://localhost:3000 OPENROUTER_APP_NAME=Janus # ---------- Ollama ---------- # Install from: https://ollama.ai OLLAMA_ENABLED=true OLLAMA_BASE_URL=http://127.0.0.1:11434/api OLLAMA_CHAT_MODEL=qwen2.5:3b-instruct OLLAMA_REASONER_MODEL=qwen2.5:3b-instruct # ---------- OpenAI ---------- # Get your API key from: https://platform.openai.com/api-keys OPENAI_API_KEY=sk-proj-YOUR_KEY_HERE OPENAI_BASE_URL=https://api.openai.com/v1 OPENAI_CHAT_MODEL=gpt-4o-mini OPENAI_REASONER_MODEL=gpt-4o # ---------- External research APIs ---------- # Tavily: https://tavily.com (optional — crawler is primary) TAVILY_API_KEY=tvly-dev-YOUR_KEY_HERE # NewsAPI: https://newsapi.org NEWSAPI_KEY=YOUR_KEY_HERE # Alpha Vantage: https://www.alphavantage.co ALPHAVANTAGE_API_KEY=YOUR_KEY_HERE # Jina Reader: https://jina.ai JINA_READER_BASE=https://r.jina.ai/http:// # ---------- Live Intelligence APIs ---------- # Google Safe Browsing: https://developers.google.com/safe-browsing SAFE_BROWSING_API_KEY= # VirusTotal: https://www.virustotal.com/gui/my-apikey VIRUSTOTAL_API_KEY= # urlscan.io: https://urlscan.io/user/api/ URLSCAN_API_KEY= # AbuseIPDB: https://www.abuseipdb.com/account/api ABUSEIPDB_API_KEY= # ---------- Custom Crawler ---------- # Self-hosted web crawling — no API keys needed CRAWLER_ENABLED=true CRAWLER_TIMEOUT=30 # ---------- MiroFish ---------- # MiroFish is the simulation service (deprecated — using native engine) MIROFISH_ENABLED=false MIROFISH_API_BASE=http://127.0.0.1:5001 MIROFISH_TIMEOUT_SECONDS=120 MIROFISH_HEALTH_PATH=/health MIROFISH_RUN_PATH=/simulation/run MIROFISH_STATUS_PATH=/simulation/{id} MIROFISH_REPORT_PATH=/simulation/{id}/report MIROFISH_CHAT_PATH=/simulation/{id}/chat # ---------- Routing ---------- SIMULATION_TRIGGER_KEYWORDS=simulate,predict,what if,reaction,scenario,public opinion,policy impact,market impact,digital twin # ---------- Domain Packs ---------- FINANCE_DOMAIN_PACK_ENABLED=true # ---------- Feature Flags (default: safe/minimal) ---------- # Control which subsystems start. Defaults minimize blast radius. FEATURE_DAEMON=true FEATURE_LEARNING=false FEATURE_SENTINEL=false FEATURE_SIMULATION=true FEATURE_ADAPTIVE=false FEATURE_SELF_TRAINING=false FEATURE_EXPERIMENTAL=false # ---------- Learning Layer ---------- LEARNING_ENABLED=false KNOWLEDGE_MAX_SIZE_MB=200 LEARNING_SCHEDULE_INTERVAL=6 LEARNING_BATCH_SIZE=10 LEARNING_TOPICS=finance,markets,technology,policy # ---------- Performance ---------- REQUEST_TIMEOUT_SECONDS=30 MAX_RESEARCH_SOURCES=5 CACHE_TTL_GENERIC_DAYS=30 CACHE_TTL_SPECIFIC_DAYS=7 # ---------- Cross-Modal Dissonance Engine ---------- # Temperature scaling for audio emotion softmax (higher = less confident predictions) AUDIO_TEMPERATURE=1.5 # Fusion weights: w1·audio_text_div + w2·prosody_boost + w3·(1-text_confidence) # Must be 3 comma-separated floats. Recommended to sum to 1.0. DISSONANCE_WEIGHTS=0.5,0.3,0.2 # UPGRADE 1: Use audeering dimensional model (outputs VAD directly — no lookup table needed) # Requires ~1.5GB download on first run. USE_DIMENSIONAL_AUDIO_MODEL=false # UPGRADE 2: Use emotion2vec (ACL 2024 SOTA). Requires: pip install funasr USE_EMOTION2VEC=false