| """ |
| config.py — Application settings via pydantic-settings. |
| Set OPENROUTER_API_KEY in .env locally or in HF Space Secrets. |
| """ |
| import os |
| from pydantic_settings import BaseSettings, SettingsConfigDict |
|
|
|
|
| class Settings(BaseSettings): |
| model_config = SettingsConfigDict( |
| env_file=".env", |
| env_file_encoding="utf-8", |
| extra="ignore", |
| case_sensitive=False, |
| ) |
|
|
| |
| OPENROUTER_API_KEY: str = "" |
| BASE_URL: str = "https://openrouter.ai/api/v1" |
|
|
| |
| PANEL_MODELS: list = [ |
| "arcee-ai/trinity-large-preview:free", |
| "nvidia/nemotron-3-nano-30b-a3b:free", |
| ] |
|
|
| PANEL_MODEL_LABELS: dict = { |
| "arcee-ai/trinity-large-preview:free": "Trinity Large", |
| "nvidia/nemotron-3-nano-30b-a3b:free": "Nemotron Nano", |
| } |
|
|
| |
| JUDGE_MODEL: str = "stepfun/step-3.5-flash:free" |
| JUDGE_LABEL: str = "StepFun Flash Judge" |
|
|
| |
| PANEL_TEMPERATURE: float = 0.3 |
| JUDGE_TEMPERATURE: float = 0.1 |
| PANEL_MAX_TOKENS: int = 2048 |
| JUDGE_MAX_TOKENS: int = 4096 |
|
|
| def __init__(self, **data): |
| if not data.get("OPENROUTER_API_KEY"): |
| env_key = ( |
| os.environ.get("OPENROUTER_API_KEY") |
| or os.environ.get("openrouter_api_key") |
| or "" |
| ) |
| if env_key: |
| data["OPENROUTER_API_KEY"] = env_key |
| super().__init__(**data) |
|
|
|
|
| settings = Settings() |
|
|