"""Configuration for X-Agents.""" import os from pathlib import Path from typing import Any # 尝试加载 .env 文件 try: from dotenv import load_dotenv # 查找 .env 文件:从当前目录向上查找 env_paths = [ Path(__file__).parent.parent.parent / ".env", # X-Agents/.env Path(__file__).parent.parent / ".env", # core/.env Path(__file__).parent / ".env", # agents/.env ] for env_path in env_paths: if env_path.exists(): load_dotenv(env_path) break except ImportError: pass # python-dotenv 未安装时跳过 class Config: """X-Agents configuration.""" # API settings API_HOST: str = os.getenv("PYTHON_HOST", os.getenv("API_HOST", "0.0.0.0")) API_PORT: int = int(os.getenv("PYTHON_PORT", os.getenv("API_PORT", "8001"))) # LLM settings LLM_PROVIDER: str = os.getenv("PYTHON_LLM_PROVIDER", os.getenv("LLM_PROVIDER", "openai")) LLM_MODEL: str = os.getenv("PYTHON_LLM_MODEL", os.getenv("LLM_MODEL", "gpt-4o")) LLM_API_KEY: str = os.getenv("PYTHON_LLM_API_KEY", os.getenv("LLM_API_KEY", "")) LLM_BASE_URL: str | None = os.getenv("PYTHON_LLM_BASE_URL", os.getenv("LLM_BASE_URL", None)) # Workspace WORKSPACE: Path = Path(os.getenv("PYTHON_WORKSPACE", os.getenv("WORKSPACE", "./workspace"))) # Agent settings MAX_ITERATIONS: int = int(os.getenv("PYTHON_MAX_ITERATIONS", os.getenv("MAX_ITERATIONS", "10"))) TEMPERATURE: float = float(os.getenv("PYTHON_TEMPERATURE", os.getenv("TEMPERATURE", "0.7"))) def __init__(self, **kwargs: Any): """Initialize config with overrides. Args: **kwargs: Configuration overrides """ for key, value in kwargs.items(): if hasattr(self, key): setattr(self, key, value) # Default config instance config = Config()