feat: optimize AI suggestion and workorder sync - support same-day multiple update numbering - insert new suggestions at top maintaining reverse chronological order - reference process history when generating suggestions - simplify prompts to avoid forcing log analysis - fix Chinese comment encoding issues
This commit is contained in:
144
LLM配置统一说明.md
Normal file
144
LLM配置统一说明.md
Normal file
@@ -0,0 +1,144 @@
|
||||
# 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` 获取配置
|
||||
- 修改配置后,请重启应用使配置生效
|
||||
|
||||
Reference in New Issue
Block a user