""" config.py - 配置管理模块 从环境变量读取配置,提供默认值。 支持通过 set_config() 覆盖默认配置。 """ import os import logging from dataclasses import dataclass, field from typing import Optional logger = logging.getLogger(__name__) @dataclass class Config: """系统配置""" # OpenAI 配置 openai_api_key: str = "" # API密钥,默认从 OPENAI_API_KEY 环境变量读取 openai_model: str = "gpt-4o" # 模型名 openai_temperature: float = 0.7 # 生成温度 openai_max_tokens: int = 4096 # 最大生成token数 openai_timeout: int = 120 # 请求超时(秒) # 系统配置 verbose: bool = False # 详细日志模式 max_text_length: int = 100000 # 发送给AI的最大文本长度 # 全局配置实例 _default_config: Optional[Config] = None def _load_from_env() -> Config: """从环境变量加载配置""" return Config( openai_api_key=os.environ.get("OPENAI_API_KEY", ""), verbose=os.environ.get("VERBOSE", "").lower() in ("1", "true", "yes"), ) def get_config() -> Config: """获取当前配置(单例)""" global _default_config if _default_config is None: _default_config = _load_from_env() return _default_config def set_config(config: Config): """覆盖默认配置""" global _default_config _default_config = config logger.info("配置已更新")