Spaces:
Sleeping
Sleeping
File size: 1,061 Bytes
83fe4f9 fb38df2 83fe4f9 fb38df2 83fe4f9 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 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()]
@lru_cache
def get_settings() -> Settings:
return Settings()
|