""" 全局配置模块 从 .env 文件加载所有配置项,提供统一的配置访问接口。 """ import os from pathlib import Path from dotenv import load_dotenv # 项目根目录 BASE_DIR = Path(__file__).parent # 加载 .env 文件 load_dotenv(BASE_DIR / ".env") class Config: """全局配置类,所有配置项均从环境变量读取""" # ---- 企业微信机器人 ---- WECHAT_BOT_ID: str = os.getenv("WECHAT_BOT_ID", "") WECHAT_BOT_SECRET: str = os.getenv("WECHAT_BOT_SECRET", "") # ---- 远程 Agent 服务 ---- AGENT_BASE_URL: str = os.getenv("AGENT_BASE_URL", "http://127.0.0.1:8000") AGENT_APP_NAME: str = os.getenv("AGENT_APP_NAME", "root_agent") AGENT_TIMEOUT: int = int(os.getenv("AGENT_TIMEOUT", "120")) # ---- 服务配置 ---- LOG_LEVEL: str = os.getenv("LOG_LEVEL", "INFO") @classmethod def validate(cls) -> list[str]: """校验必要配置项,返回缺失项列表""" missing = [] if not cls.WECHAT_BOT_ID: missing.append("WECHAT_BOT_ID") if not cls.WECHAT_BOT_SECRET: missing.append("WECHAT_BOT_SECRET") if not cls.AGENT_BASE_URL: missing.append("AGENT_BASE_URL") return missing