fix: 添加模型名称映射逻辑

- claude-* 映射到 claude-4.5-sonnet
- gpt-* 映射到 gpt-5.2
- gemini-* 映射到 gemini-3-flash
- 支持精确匹配和前缀匹配
- 更新 README 模型映射表
This commit is contained in:
chinadoiphin
2025-12-18 11:00:50 +08:00
parent 67a7b50442
commit 0e608acff6
2 changed files with 55 additions and 6 deletions

View File

@@ -382,9 +382,11 @@ curl http://localhost:3010/tools/execute \
| 请求模型 | 映射到 Cursor |
|---------|--------------|
| claude-* | anthropic/claude-sonnet-4.5 |
| gpt-* | openai/gpt-5-nano |
| gemini-* | google/gemini-2.5-flash |
| claude-* | claude-4.5-sonnet |
| claude-opus-4-* | claude-4.5-opus |
| gpt-* | gpt-5.2 |
| gemini-* | gemini-3-flash |
| gemini-*-pro | gemini-3-pro |
## MCP 服务器

View File

@@ -103,11 +103,58 @@ func getTextContent(content interface{}) string {
// mapModelName 将模型名称映射到 Cursor 支持的格式
func mapModelName(model string) string {
// 直接透传模型名称,不做转换
if model == "" {
return "claude-opus-4-5-20251101"
return "claude-4.5-sonnet"
}
return model
// 模型映射表
modelMap := map[string]string{
// Claude 系列 -> claude-4.5-sonnet
"claude-3-opus": "claude-4.5-sonnet",
"claude-3-sonnet": "claude-4.5-sonnet",
"claude-3-haiku": "claude-4.5-sonnet",
"claude-3.5-sonnet": "claude-4.5-sonnet",
"claude-3.5-haiku": "claude-4.5-sonnet",
"claude-3.7-sonnet": "claude-4.5-sonnet",
"claude-sonnet-4-20250514": "claude-4.5-sonnet",
"claude-opus-4-20250514": "claude-4.5-opus",
// GPT 系列 -> gpt-5.2
"gpt-4": "gpt-5.2",
"gpt-4o": "gpt-5.2",
"gpt-4-turbo": "gpt-5.2",
"gpt-3.5": "gpt-5.2",
// Gemini 系列 -> gemini-3-flash
"gemini-pro": "gemini-3-flash",
"gemini-1.5-pro": "gemini-3-pro",
"gemini-1.5-flash": "gemini-3-flash",
"gemini-2.0-flash": "gemini-3-flash",
"gemini-2.5-flash": "gemini-3-flash",
}
// 精确匹配
if mapped, ok := modelMap[model]; ok {
log.Debug("模型映射: %s -> %s", model, mapped)
return mapped
}
// 前缀匹配
switch {
case len(model) >= 6 && model[:6] == "claude":
log.Debug("模型映射 (前缀): %s -> claude-4.5-sonnet", model)
return "claude-4.5-sonnet"
case len(model) >= 3 && model[:3] == "gpt":
log.Debug("模型映射 (前缀): %s -> gpt-5.2", model)
return "gpt-5.2"
case len(model) >= 6 && model[:6] == "gemini":
log.Debug("模型映射 (前缀): %s -> gemini-3-flash", model)
return "gemini-3-flash"
}
// 未知模型,使用默认
log.Warn("未知模型 %s使用默认 claude-4.5-sonnet", model)
return "claude-4.5-sonnet"
}
// ================== 处理器函数 ==================