Spaces:
Sleeping
Sleeping
| """ | |
| Configuration settings for AI Engine. | |
| Adapted for standalone deployment on Hugging Face Spaces. | |
| """ | |
| import os | |
| from pathlib import Path | |
| from dotenv import load_dotenv | |
| ROOT_DIR = Path(__file__).parent.parent | |
| load_dotenv(ROOT_DIR / '.env') | |
| class Settings: | |
| """Application settings with optional environment variables for standalone operation.""" | |
| # MongoDB (optional - only needed if using DB features) | |
| MONGO_URL: str = os.environ.get('MONGO_URL', '') | |
| DB_NAME: str = os.environ.get('DB_NAME', 'opentriage') | |
| # GitHub OAuth (optional for AI-only endpoints) | |
| GITHUB_CLIENT_ID: str = os.environ.get('GITHUB_CLIENT_ID', '') | |
| GITHUB_CLIENT_SECRET: str = os.environ.get('GITHUB_CLIENT_SECRET', '') | |
| # JWT (optional for AI-only endpoints) | |
| JWT_SECRET: str = os.environ.get('JWT_SECRET', 'dev-secret-change-in-prod') | |
| # AI - Required for triage/chat features | |
| OPENROUTER_API_KEY: str = os.environ.get('OPENROUTER_API_KEY', '') | |
| OPENAI_API_KEY: str = os.environ.get('OPENAI_API_KEY', '') | |
| # URLs | |
| FRONTEND_URL: str = os.environ.get('FRONTEND_URL', "http://localhost:3000") | |
| API_URL: str = os.environ.get('API_URL', "http://localhost:8000") | |
| BACKEND_TS_URL: str = os.environ.get('BACKEND_TS_URL', "http://localhost:3000") | |
| # CORS | |
| ALLOWED_ORIGINS: list = os.environ.get('CORS_ORIGINS', | |
| "http://localhost:3000,http://localhost:5173,https://opentriage.onrender.com,https://open-triage.vercel.app" | |
| ).split(',') | |
| # Spark Configuration (optional - disabled by default for HF deployment) | |
| SPARK_ENABLED: bool = os.environ.get('SPARK_ENABLED', 'false').lower() == 'true' | |
| SPARK_APP_NAME: str = os.environ.get('SPARK_APP_NAME', 'OpenTriage') | |
| SPARK_MASTER: str = os.environ.get('SPARK_MASTER', 'local[*]') | |
| SPARK_DRIVER_MEMORY: str = os.environ.get('SPARK_DRIVER_MEMORY', '4g') | |
| SPARK_EXECUTOR_MEMORY: str = os.environ.get('SPARK_EXECUTOR_MEMORY', '2g') | |
| SPARK_LOG_LEVEL: str = os.environ.get('SPARK_LOG_LEVEL', 'WARN') | |
| # Environment | |
| ENVIRONMENT: str = os.environ.get('ENVIRONMENT', 'development') | |
| def is_production(self) -> bool: | |
| return self.ENVIRONMENT.lower() == 'production' | |
| def api_key(self) -> str: | |
| """Get the active API key (prefer OpenRouter).""" | |
| return self.OPENROUTER_API_KEY or self.OPENAI_API_KEY | |
| settings = Settings() | |