from dotenv import load_dotenv import os from typing import Optional class ServiceConfig: def __init__(self, url_var: str, type_var: str, name_var: str): """ Initialize the ServiceConfig with environment variables. :param url_var: Environment variable for the service URL. :param type_var: Environment variable for the service type. :param name_var: Environment variable for the service name. """ self.url: Optional[str] = os.getenv(url_var) self.type: Optional[str] = os.getenv(type_var) self.name: Optional[str] = os.getenv(name_var) self.key: Optional[str] = os.getenv(f"{self.type}_KEY") class Config: def __init__(self): """ Load environment variables and initialize service configurations. """ load_dotenv(override=True) self.llm: ServiceConfig = ServiceConfig("LLM_URL", "LLM_TYPE", "LLM_NAME") self.stt: ServiceConfig = ServiceConfig("STT_URL", "STT_TYPE", "STT_NAME") self.tts: ServiceConfig = ServiceConfig("TTS_URL", "TTS_TYPE", "TTS_NAME")