# 模型选择验证指南 ## 问题:切换模型后回答没有变化? 这个问题可能有以下几个原因,我已经添加了详细的日志来帮助你诊断。 --- ## 🔍 如何确认模型被正确使用 ### 方法 1: 查看控制台日志 (推荐) 打开浏览器开发者工具 (F12),切换到 Console 标签,发送一条消息后查看日志: #### 关键日志标记 1. **用户选择阶段** ``` 🎯 [callModelStream] 用户选择的模型: qwen-turbo-latest ✅ [callModelStream] 找到匹配服务: 阿里云通义千问 ``` 2. **最终确认阶段** ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🔍 [callModelStream] 最终选择: 服务: 阿里云通义千问 (dashscope) 模型: qwen-turbo-latest MCP: 未选择 工具: 0 个 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``` 3. **请求准备阶段** ``` 🎯 [makeChatRequestStream] 准备请求参数: 服务类型: dashscope 服务名称: 阿里云通义千问 使用模型: qwen-turbo-latest 消息数量: 2 工具数量: 0 ``` 4. **最终发送阶段** ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🚀 [最终确认] 即将发送请求: 模型: qwen-turbo-latest 服务: 阿里云通义千问 (dashscope) URL: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``` 5. **API 响应确认** ``` ✅ [响应确认] API 返回的模型: qwen-turbo-latest 请求的模型: qwen-turbo-latest 模型匹配: ✓ 一致 ``` ### 方法 2: 测试不同模型的特性 #### 测试 qwen-turbo-latest (快速响应) ``` 提问: "用一句话介绍你自己" 预期: 快速响应,简洁回答 ``` #### 测试 qwq-plus (推理能力) ``` 提问: "如果 A>B,B>C,那么 A 和 C 的关系是什么?请详细说明推理过程。" 预期: 详细的逻辑推理步骤 ``` #### 测试 qwen-long (长上下文) ``` 提问: "总结一下我们之前的所有对话" 预期: 能够回顾更多历史消息 ``` #### 测试 qwen3-omni-flash (快速响应) ``` 提问: "快速回答:1+1=?" 预期: 极速响应 ``` --- ## 🐛 常见问题排查 ### 问题 1: 模型显示但没有变化 **检查点 1**: 确认服务配置正确 ```javascript // 在控制台执行 const providers = JSON.parse(localStorage.getItem('model-providers') || '[]') const aliyun = providers.find(p => p.type === 'dashscope') console.log('阿里云配置:', aliyun) console.log('可用模型:', aliyun?.models) ``` **检查点 2**: 确认模型列表包含目标模型 ```javascript // 在控制台执行 const providers = JSON.parse(localStorage.getItem('model-providers') || '[]') providers.forEach(p => { console.log(`${p.name} (${p.type}):`, p.models) }) ``` **检查点 3**: 查看控制台是否有错误 - 红色错误信息 - 黄色警告信息 - 404/401/403 等 HTTP 错误 ### 问题 2: 所有模型回答都一样 **可能原因**: 1. **服务类型配置错误**: 检查服务类型是否为 `dashscope` 2. **Base URL 错误**: 应该是 `https://dashscope.aliyuncs.com/compatible-mode/v1` 3. **模型参数未传递**: 查看日志中的 `📋 [makeChatRequestStream] 请求体 model 字段` 4. **API 不支持该模型**: 某些 API Key 可能没有权限使用特定模型 ### 问题 3: API 返回模型不一致 如果看到这样的日志: ``` ✅ [响应确认] API 返回的模型: gpt-3.5-turbo 请求的模型: qwen-turbo-latest 模型匹配: ✗ 不一致! ``` **可能原因**: 1. **服务配置错误**: 可能连接到了错误的服务 2. **模型映射问题**: API 可能自动映射到了其他模型 3. **API Key 权限**: 该 API Key 可能无权使用指定模型 --- ## 🔧 修复步骤 ### 步骤 1: 验证服务配置 ```javascript // 在浏览器控制台执行 const providers = JSON.parse(localStorage.getItem('model-providers') || '[]') const aliyun = providers.find(p => p.type === 'dashscope') console.log('配置检查:') console.log('✓ 服务类型:', aliyun.type) console.log('✓ Base URL:', aliyun.baseUrl) console.log('✓ API Key:', aliyun.apiKey?.substring(0, 10) + '...') console.log('✓ 模型列表:', aliyun.models) console.log('✓ 默认模型:', aliyun.defaultModel) console.log('✓ 启用状态:', aliyun.enabled) ``` ### 步骤 2: 重新配置模型列表 如果模型列表不正确: ```javascript // 在浏览器控制台执行 const providers = JSON.parse(localStorage.getItem('model-providers') || '[]') const aliyunIndex = providers.findIndex(p => p.type === 'dashscope') if (aliyunIndex >= 0) { // 更新模型列表 providers[aliyunIndex].models = [ 'qwen-turbo-latest', 'qwq-plus', 'qwen-long', 'qwen3-omni-flash' ] // 保存 localStorage.setItem('model-providers', JSON.stringify(providers)) console.log('✅ 模型列表已更新,请刷新页面') setTimeout(() => location.reload(), 2000) } ``` ### 步骤 3: 测试连接 1. 进入"模型服务"设置 2. 找到阿里云服务 3. 点击"测试连接" 4. 查看是否成功 ### 步骤 4: 清空缓存重试 ```javascript // 清空对话历史 localStorage.removeItem('chat-conversations') localStorage.removeItem('chat-topics') // 刷新页面 location.reload() ``` --- ## 📊 预期日志输出示例 ### 正常情况 (切换模型成功) ``` 🎯 [callModelStream] 用户选择的模型: qwq-plus ✅ [callModelStream] 找到匹配服务: 阿里云通义千问 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🔍 [callModelStream] 最终选择: 服务: 阿里云通义千问 (dashscope) 模型: qwq-plus MCP: 未选择 工具: 0 个 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🎯 [makeChatRequestStream] 准备请求参数: 服务类型: dashscope 服务名称: 阿里云通义千问 使用模型: qwq-plus 消息数量: 2 工具数量: 0 📋 [makeChatRequestStream] 请求体 model 字段: qwq-plus ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🚀 [最终确认] 即将发送请求: 模型: qwq-plus 服务: 阿里云通义千问 (dashscope) URL: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✅ [响应确认] API 返回的模型: qwq-plus 请求的模型: qwq-plus 模型匹配: ✓ 一致 ``` ### 异常情况 (服务未找到) ``` 🎯 [callModelStream] 用户选择的模型: unknown-model ⚠️ [callModelStream] 未找到包含该模型的服务,使用默认服务 ``` --- ## 💡 使用建议 1. **首次使用**: 先用日志确认模型是否正确传递 2. **测试对比**: 用不同模型测试相同问题,对比回答差异 3. **性能对比**: 观察不同模型的响应速度 4. **功能测试**: 用特定模型测试其特长(如 qwq-plus 测试推理) --- ## 🆘 仍然有问题? 如果以上方法都无法解决问题,请: 1. 截图控制台完整日志 2. 记录以下信息: - 选择的模型名称 - 服务配置(隐藏 API Key) - 完整的控制台输出 - 问题描述 3. 检查以下文件: - `/web/src/services/chatService.ts` - `/web/src/services/modelServiceManager.ts` - localStorage 中的 `model-providers` --- **现在刷新页面,选择不同的模型,查看控制台日志,你应该能看到完整的模型选择和使用流程!** 🔍✨