# backend/app/config.py from functools import lru_cache from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore") database_url: str = "sqlite:///./ari.db" # LLM — 절대 특정 모델을 하드코딩하지 않는다. 설치된 모델을 env로 주입. ollama_host: str = "http://localhost:11434" ollama_model: str = "llama3.1" # 기본 placeholder. 실제 운영은 .env 로 덮어쓴다. llm_provider: str = "auto" # auto | ollama | heuristic llm_timeout: float = 20.0 # 초 # 리스크 계산 기준일 — CONTRACT: TODAY=8 (6/8). 시드가 '6/7~6/12 한 주' 가정. risk_today: int = 8 # CORS 허용 출처(콤마구분). 단일 환경변수 규약: FRONTEND_ORIGIN. # 개발 포트는 흔한 dev 포트와 충돌을 피해 31xxx 대역 사용(프론트 31300). frontend_origin: str = "http://localhost:31300" # 테스트 리셋 게이트 (테스트 환경에서만 시드 리셋 허용) ari_allow_test_reset: bool = False @lru_cache def get_settings() -> Settings: return Settings()