- 在 chatService 中添加模型选择详细日志 - 在 modelServiceManager 中添加请求/响应确认日志 - 创建模型选择验证指南文档 - 帮助用户确认所选模型是否被正确使用 新增日志: - 🎯 用户选择的模型 - ✅ 找到匹配服务 - 🔍 最终选择确认 - 📋 请求体 model 字段 - �� 最终发送确认 - ✅ API 响应模型确认 用户现在可以在控制台清晰看到: - 选择了哪个模型 - 找到了哪个服务 - 实际发送了什么模型参数 - API 返回了什么模型 - 请求模型和响应模型是否一致
7.8 KiB
7.8 KiB
模型选择验证指南
问题:切换模型后回答没有变化?
这个问题可能有以下几个原因,我已经添加了详细的日志来帮助你诊断。
🔍 如何确认模型被正确使用
方法 1: 查看控制台日志 (推荐)
打开浏览器开发者工具 (F12),切换到 Console 标签,发送一条消息后查看日志:
关键日志标记
- 用户选择阶段
🎯 [callModelStream] 用户选择的模型: qwen-turbo-latest
✅ [callModelStream] 找到匹配服务: 阿里云通义千问
- 最终确认阶段
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔍 [callModelStream] 最终选择:
服务: 阿里云通义千问 (dashscope)
模型: qwen-turbo-latest
MCP: 未选择
工具: 0 个
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- 请求准备阶段
🎯 [makeChatRequestStream] 准备请求参数:
服务类型: dashscope
服务名称: 阿里云通义千问
使用模型: qwen-turbo-latest
消息数量: 2
工具数量: 0
- 最终发送阶段
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 [最终确认] 即将发送请求:
模型: qwen-turbo-latest
服务: 阿里云通义千问 (dashscope)
URL: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- 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: 确认服务配置正确
// 在控制台执行
const providers = JSON.parse(localStorage.getItem('model-providers') || '[]')
const aliyun = providers.find(p => p.type === 'dashscope')
console.log('阿里云配置:', aliyun)
console.log('可用模型:', aliyun?.models)
检查点 2: 确认模型列表包含目标模型
// 在控制台执行
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: 所有模型回答都一样
可能原因:
- 服务类型配置错误: 检查服务类型是否为
dashscope - Base URL 错误: 应该是
https://dashscope.aliyuncs.com/compatible-mode/v1 - 模型参数未传递: 查看日志中的
📋 [makeChatRequestStream] 请求体 model 字段 - API 不支持该模型: 某些 API Key 可能没有权限使用特定模型
问题 3: API 返回模型不一致
如果看到这样的日志:
✅ [响应确认] API 返回的模型: gpt-3.5-turbo
请求的模型: qwen-turbo-latest
模型匹配: ✗ 不一致!
可能原因:
- 服务配置错误: 可能连接到了错误的服务
- 模型映射问题: API 可能自动映射到了其他模型
- API Key 权限: 该 API Key 可能无权使用指定模型
🔧 修复步骤
步骤 1: 验证服务配置
// 在浏览器控制台执行
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: 重新配置模型列表
如果模型列表不正确:
// 在浏览器控制台执行
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: 测试连接
- 进入"模型服务"设置
- 找到阿里云服务
- 点击"测试连接"
- 查看是否成功
步骤 4: 清空缓存重试
// 清空对话历史
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] 未找到包含该模型的服务,使用默认服务
💡 使用建议
- 首次使用: 先用日志确认模型是否正确传递
- 测试对比: 用不同模型测试相同问题,对比回答差异
- 性能对比: 观察不同模型的响应速度
- 功能测试: 用特定模型测试其特长(如 qwq-plus 测试推理)
🆘 仍然有问题?
如果以上方法都无法解决问题,请:
-
截图控制台完整日志
-
记录以下信息:
- 选择的模型名称
- 服务配置(隐藏 API Key)
- 完整的控制台输出
- 问题描述
-
检查以下文件:
/web/src/services/chatService.ts/web/src/services/modelServiceManager.ts- localStorage 中的
model-providers
现在刷新页面,选择不同的模型,查看控制台日志,你应该能看到完整的模型选择和使用流程! 🔍✨