Spaces:
Sleeping
Sleeping
| import os | |
| from functools import lru_cache | |
| from pydantic import BaseModel, Field | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| class Settings(BaseModel): | |
| app_name: str = "FlowPilot" | |
| api_prefix: str = "/api" | |
| database_url: str = "sqlite:///./flowpilot.db" | |
| allow_origins: list[str] = Field(default_factory=lambda: _split_csv(os.getenv("ALLOW_ORIGINS", "*"))) | |
| ai_provider: str = os.getenv("AI_PROVIDER", "groq") | |
| analyze_with_ai: bool = os.getenv("ANALYZE_WITH_AI", "false").lower() == "true" | |
| gmail_poll_seconds: int = int(os.getenv("GMAIL_POLL_SECONDS", "30")) | |
| groq_api_key: str = os.getenv("GROQ_API_KEY", "") | |
| groq_model: str = os.getenv("GROQ_MODEL", "llama-3.3-70b-versatile") | |
| groq_base_url: str = os.getenv("GROQ_BASE_URL", "https://api.groq.com/openai/v1") | |
| groq_timeout_seconds: float = float(os.getenv("GROQ_TIMEOUT_SECONDS", "8")) | |
| def _split_csv(value: str) -> list[str]: | |
| return [item.strip() for item in value.split(",") if item.strip()] | |
| def get_settings() -> Settings: | |
| return Settings() | |