50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
"""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
|
|
|