| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- """
- 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("配置已更新")
|