"""Typed settings for GCP Solution Architecture Agent.""" import os from pathlib import Path from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): """Application Settings.""" model_config = SettingsConfigDict( env_file=".env", env_file_encoding="utf-8", extra="ignore", ) # Agent Identity AGENT_NAME: str = "gcp_solution_architecture_agent" AGENT_VERSION: str = "1.0.0" LOG_LEVEL: str = "INFO" # Server Configuration HOST: str = "0.0.0.0" PORT: int = 8080 # LLM Settings OPENAI_API_KEY: str | None = None AZURE_OPENAI_API_KEY: str | None = None AZURE_OPENAI_ENDPOINT: str | None = None AZURE_OPENAI_DEPLOYMENT: str = "gpt-4o" AZURE_OPENAI_API_VERSION: str = "2024-02-15-preview" LLM_TEMPERATURE: float = 0.2 # Paths BASE_DIR: Path = Path(__file__).resolve().parent.parent SKILLS_DIR: Path = Path(__file__).resolve().parent / "skills" EVAL_DATASET_PATH: Path = Path(__file__).resolve().parent.parent / "eval" / "datasets" / "benchmark_cases.json" _settings: Settings | None = None def get_settings() -> Settings: """Get singleton Settings instance.""" global _settings if _settings is None: _settings = Settings() return _settings