| from __future__ import annotations | |
| """μ± νκ²½ μ€μ (env/.env override). settings μ±κΈν€μΌλ‘ μ μ μ¬μ©.""" | |
| from pydantic_settings import BaseSettings | |
| from functools import lru_cache | |
| class Settings(BaseSettings): | |
| """νκ²½λ³μΒ·.envλ‘ μ£Όμ λλ μ± μ€μ (μλ²/DB/MLflow/μΆλ‘ /CORS).""" | |
| ENV: str = "local" | |
| PORT: int = 3002 | |
| RELOAD: bool = True | |
| WARMUP_ON_START: bool = True # κΈ°λ μ μ μλλ¦¬μ€ λͺ¨λΈ νμ΅Β·λ±λ‘(μμΌλ©΄) | |
| SCENARIO_ID: str = "cs-myk-v3" | |
| DB_TYPE: str = "duckdb" | |
| DB_PATH: str = "roadshow_v3.duckdb" | |
| MLFLOW_URI: str = "sqlite:///mlflow_v3.db" | |
| MLFLOW_ARTIFACT_ROOT: str = "./mlruns_v3" | |
| TOP_N_INTENT: int = 5 | |
| INTENT_SCORE_THRESHOLD: float = 0.05 | |
| DATABRICKS_CATALOG: str = "main" | |
| DATABRICKS_SCHEMA: str = "roadshow_v3" | |
| # ββ CORS ββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # μΌνλ‘ κ΅¬λΆλ origin λͺ©λ‘ (μ: "https://x.pages.dev,https://y.vercel.app") | |
| # λΉ κ°μ΄λ©΄ "*" νμ© (λ°°ν¬ νκ²½ μ΄λλ ) | |
| CORS_ORIGINS: str = "" | |
| class Config: | |
| env_file = ".env" | |
| def get_settings() -> Settings: | |
| """Settings μ±κΈν€μ λ°ννλ€. | |
| Returns: | |
| lru_cacheλ‘ μΊμλ Settings μΈμ€ν΄μ€ (μ±κΈν€). | |
| """ | |
| return Settings() | |
| settings = get_settings() | |