# config.py - V1.1 (Central Config - Force Rebuild) import os from dotenv import load_dotenv # Load environment variables from .env file load_dotenv() # Determine Environment # V5.9.3: Detailed logging for Hugging Face environment detection raw_env = os.getenv("ENV", "").lower() space_id = os.getenv("SPACE_ID", "").lower() print(f"🔍 [DEBUG-CONFIG] raw_env: '{raw_env}', space_id: '{space_id}'") if not raw_env: # Check for keywords that indicate a dev space if any(k in space_id for k in ["buddymath-dev", "-dev", "sandbox"]): ENV = "development" print(f"✨ [DEBUG-CONFIG] Auto-detected DEVELOPMENT mode (space_id match).") else: ENV = "production" print(f"🛡️ [DEBUG-CONFIG] Defaulting to PRODUCTION mode.") else: ENV = raw_env print(f"📍 [DEBUG-CONFIG] Using explicit ENV from settings: {ENV}") IS_PRODUCTION = ENV == "production" # V5.9.1: DEV Auth Bypass Token (Whitelisted only in non-prod environments) DEV_BYPASS_TOKEN = "BUDDY-MATH-DEV-2026-BYPASS" # Firebase Configuration # V5.11.3: DEPRECATED local JSON files for security. # Credentials must be provided via FIREBASE_CREDENTIALS environment variable. if IS_PRODUCTION: # PROD: bussymath FIREBASE_CREDENTIALS_PATH = None STORAGE_BUCKET = "bussymath.firebasestorage.app" PROJECT_ID = "bussymath" else: # DEV: buddy-math-dev FIREBASE_CREDENTIALS_PATH = None STORAGE_BUCKET = "buddy-math-dev.firebasestorage.app" PROJECT_ID = "buddy-math-dev" # Server Configuration HOST = "0.0.0.0" PORT = 8000 if not IS_PRODUCTION else 7860 # HF Spaces/Cloud Run often use 7860 or PORT env # V3.1.2: Adaptive Failure Mode - Confidence Thresholds # V3.1.3: Recalibrated (Hard Floor 0.55) # V4.2.11: Lowered for DEV to unblock geometry diagnostics CONFIDENCE_THRESHOLD_HIGH = 0.75 CONFIDENCE_THRESHOLD_MEDIUM = 0.55 if IS_PRODUCTION else 0.01 print(f"[CONFIG] Loading {ENV.upper()} configuration.") print(f"[CONFIG] Project: {PROJECT_ID}") print(f"[CONFIG] Bucket: {STORAGE_BUCKET}") # V3.1.3: Model Hardening - Restricted to gemini-2.0-flash ONLY # To change model, update the environment variable 'GEMINI_MODEL' GEMINI_MODEL = os.getenv("GEMINI_MODEL", "gemini-2.0-flash") print(f"[CONFIG] Active Model: {GEMINI_MODEL}")