flow-pilot / backend /config.py
DevelopedBy-Siva
deploy to HF
fb38df2
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()