""" Configuration management for the multi-agent workflow. """ import os from dotenv import load_dotenv from typing import Optional # Load environment variables from .env file load_dotenv() class Config: """Configuration class for managing API keys and settings.""" def __init__(self): self.perplexity_api_key = os.getenv("PERPLEXITY_API_KEY") self.openai_api_key = os.getenv("OPENAI_API_KEY") # Validate required API keys self._validate_config() def _validate_config(self): """Validate that required API keys are present.""" missing_keys = [] if not self.perplexity_api_key and not self.openai_api_key: print("Warning: No LLM API key found (PERPLEXITY_API_KEY or OPENAI_API_KEY)") missing_keys.append("PERPLEXITY_API_KEY or OPENAI_API_KEY") if missing_keys: print(f"Please set the following environment variables: {', '.join(missing_keys)}") return False return True @property def llm_model(self) -> str: """Return the preferred LLM model.""" return "gpt-3.5-turbo" if self.openai_api_key else "llama-2-70b-chat" @property def llm_api_key(self) -> Optional[str]: """Return the preferred LLM API key.""" return self.perplexity_api_key or self.openai_api_key