1
0

config.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import os
  2. from dataclasses import dataclass
  3. from pathlib import Path
  4. from dotenv import load_dotenv
  5. BACKEND_ROOT = Path(__file__).resolve().parents[1]
  6. load_dotenv(BACKEND_ROOT / ".env")
  7. @dataclass
  8. class Settings:
  9. app_name: str = "AutoFlow API"
  10. app_env: str = "dev"
  11. app_host: str = "0.0.0.0"
  12. app_port: int = 8000
  13. cors_origins: str = "*"
  14. llm_model_id: str = ""
  15. llm_api_key: str = ""
  16. llm_base_url: str = ""
  17. llm_timeout: int = 60
  18. agent_max_steps: int = 6
  19. validator_max_retries: int = 2
  20. @classmethod
  21. def from_env(cls) -> "Settings":
  22. return cls(
  23. app_name=os.getenv("APP_NAME", "AutoFlow API"),
  24. app_env=os.getenv("APP_ENV", "dev"),
  25. app_host=os.getenv("APP_HOST", "0.0.0.0"),
  26. app_port=int(os.getenv("APP_PORT", "8000")),
  27. cors_origins=os.getenv("CORS_ORIGINS", "*"),
  28. llm_model_id=os.getenv("LLM_MODEL_ID", ""),
  29. llm_api_key=os.getenv("LLM_API_KEY", ""),
  30. llm_base_url=os.getenv("LLM_BASE_URL", ""),
  31. llm_timeout=int(os.getenv("LLM_TIMEOUT", "60")),
  32. agent_max_steps=int(os.getenv("AGENT_MAX_STEPS", "6")),
  33. validator_max_retries=int(os.getenv("VALIDATOR_MAX_RETRIES", "2")),
  34. )
  35. settings = Settings.from_env()