import os from pathlib import Path from dotenv import load_dotenv # Load environment variables from .env file env_path = Path('.') / '.env' load_dotenv(dotenv_path=env_path) # OpenAI Configuration OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") OPENAI_MODEL_NAME = os.getenv("OPENAI_MODEL_NAME", "gpt-5-mini") AZURE_API_KEY = os.getenv("AZURE_API_KEY") AZURE_API_BASE = os.getenv("AZURE_API_BASE") AZURE_API_VERSION = os.getenv("AZURE_API_VERSION") # Langfuse Configuration LANGFUSE_PUBLIC_KEY = os.getenv("LANGFUSE_PUBLIC_KEY") LANGFUSE_SECRET_KEY = os.getenv("LANGFUSE_SECRET_KEY") LANGFUSE_HOST = os.getenv("LANGFUSE_HOST", "https://cloud.langfuse.com") LANGFUSE_AUTH = "" if LANGFUSE_PUBLIC_KEY and LANGFUSE_SECRET_KEY: import base64 LANGFUSE_AUTH = base64.b64encode(f"{LANGFUSE_PUBLIC_KEY}:{LANGFUSE_SECRET_KEY}".encode()).decode() # Other API Keys ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY") # Database Configuration DB_URI = os.getenv("DB_URI", "sqlite:///agent_monitoring.db") # Function to validate configuration def validate_config(): """Validates that all required environment variables are set""" required_vars = [ ("OPENAI_API_KEY", OPENAI_API_KEY), ] missing_vars = [var_name for var_name, var_value in required_vars if not var_value] if missing_vars: missing_vars_str = ", ".join(missing_vars) print(f"Missing required environment variables: {missing_vars_str}") print(f"Please set them in the .env file or as environment variables") return False return True