# LLM配置统一管理说明 ## ? 概述 本项目已将LLM配置统一管理,确保整个项目只在一个地方配置千问模型,所有地方都从统一配置获取。 ## ?? 配置架构 ### 1. 核心配置文件:`config/llm_config.py` 这是**唯一的**LLM配置源,定义了千问模型的所有配置: ```python QWEN_CONFIG = LLMConfig( provider="qwen", api_key="sk-c0dbefa1718d46eaa897199135066f00", base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", model="qwen-plus-latest", temperature=0.7, max_tokens=2000 ) # 默认使用千问模型 DEFAULT_CONFIG = QWEN_CONFIG ``` ### 2. 统一配置管理器:`src/config/unified_config.py` 统一配置管理器在初始化时自动从 `config/llm_config.py` 加载配置: ```python def _load_default_llm_config(self) -> LLMConfig: """加载默认LLM配置""" try: from config.llm_config import DEFAULT_CONFIG # 转换配置格式 return LLMConfig(...) except Exception as e: logger.warning(f"无法加载默认LLM配置,使用内置默认值: {e}") return LLMConfig() ``` ### 3. 全局配置实例 通过 `get_config()` 函数获取全局配置实例: ```python from src.config.unified_config import get_config config = get_config() llm_config = config.llm # 获取LLM配置 ``` ## ? 如何使用 ### 在任何需要使用LLM的地方: ```python from src.config.unified_config import get_config # 获取LLM配置 llm_config = get_config().llm # 使用配置 print(f"Provider: {llm_config.provider}") print(f"Model: {llm_config.model}") print(f"API Key: {llm_config.api_key}") ``` ### 示例:AI建议服务 ```python class AISuggestionService: def __init__(self): # 从统一配置管理器获取LLM配置 self.llm_config = get_config().llm logger.info(f"使用LLM配置: {self.llm_config.provider} - {self.llm_config.model}") ``` ## ? 配置优先级 1. **第一优先级**:统一配置管理器中的配置(可通过配置文件或环境变量设置) 2. **第二优先级**:`config/llm_config.py` 中的 `DEFAULT_CONFIG` 3. **最后备选**:内置的默认值 ## ? 修改配置 ### 方法1:修改配置文件(推荐) 直接编辑 `config/llm_config.py`,修改API密钥或模型: ```python QWEN_CONFIG = LLMConfig( provider="qwen", api_key="你的新API密钥", # 修改这里 model="qwen-max", # 或修改模型 ... ) ``` ### 方法2:通过统一配置文件 编辑 `config/unified_config.json`(如果存在): ```json { "llm": { "provider": "qwen", "api_key": "你的新API密钥", "model": "qwen-plus-latest", ... } } ``` ### 方法3:环境变量(可选) ```bash export LLM_API_KEY="你的API密钥" export LLM_MODEL="qwen-plus-latest" ``` ## ? 优势 1. **单一配置源**:只需要在 `config/llm_config.py` 配置一次 2. **统一管理**:所有模块都通过统一配置管理器获取 3. **易于维护**:修改配置不需要修改多处代码 4. **自动同步**:修改配置后,所有使用该配置的地方自动更新 5. **向后兼容**:保留fallback机制,确保系统稳定运行 ## ? 已更新的文件 - ? `config/llm_config.py` - 添加了 `get_default_llm_config()` 函数 - ? `src/config/unified_config.py` - 从 `config/llm_config.py` 加载默认配置 - ? `src/integrations/ai_suggestion_service.py` - 使用统一配置 - ? `src/agent/agent_assistant_core.py` - 使用统一配置 ## ? 注意事项 - **不要**在代码中硬编码OpenAI或其他模型的配置 - **不要**直接从 `config/llm_config.py` 导入(除非作为fallback) - **总是**通过 `get_config().llm` 获取配置 - 修改配置后,请重启应用使配置生效