claimflow-api / app /config.py
Minifigures's picture
feat: ClaimFlow API demo backend
ceea9e1 verified
Raw
History Blame Contribute Delete
1.08 kB
from functools import lru_cache
from pathlib import Path
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
model_config = SettingsConfigDict(env_file=".env", env_prefix="", extra="ignore")
database_url: str = "sqlite:///./var/claimflow.sqlite"
upload_dir: Path = Path("./var/uploads")
jwt_secret: str = "dev-only-secret-change-me-0123456789abcdef"
jwt_expire_hours: int = 8
cookie_secure: bool = False
app_origin: str = "http://localhost:3000"
email_provider: str = "console" # console | smtp
smtp_host: str = ""
smtp_port: int = 465
smtp_user: str = ""
smtp_password: str = ""
email_from: str = "claims@claimflow.demo"
model_backend: str = "stub" # stub | real
weights_dir: Path = Path("./weights")
anthropic_api_key: str = ""
gemini_api_key: str = "" # free-tier lane; anthropic wins when both are set
gemini_model: str = "gemini-2.5-flash"
chroma_dir: Path = Path("./var/chroma")
@lru_cache
def get_settings() -> Settings:
return Settings()