Spaces:
Paused
Paused
feat: add Claude-to-GLM model name mapping
Browse filesMap Claude model names (opus, sonnet, haiku) to corresponding GLM models
with automatic thinking and tools tag resolution. Default unknown models
to glm-4.7 as fallback.
- internal/model/mapping.go +38 -1
internal/model/mapping.go
CHANGED
|
@@ -13,6 +13,42 @@ var BaseModelMapping = map[string]string{
|
|
| 13 |
"0808-360B-DR": "0808-360B-DR",
|
| 14 |
}
|
| 15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
// v1/models 返回的模型列表(不包含所有标签组合)
|
| 17 |
var ModelList = []string{
|
| 18 |
"GLM-4.5",
|
|
@@ -76,5 +112,6 @@ func GetTargetModel(model string) string {
|
|
| 76 |
if target, ok := BaseModelMapping[baseModel]; ok {
|
| 77 |
return target
|
| 78 |
}
|
| 79 |
-
|
|
|
|
| 80 |
}
|
|
|
|
| 13 |
"0808-360B-DR": "0808-360B-DR",
|
| 14 |
}
|
| 15 |
|
| 16 |
+
// Claude 模型名到 GLM 基础模型名的映射
|
| 17 |
+
var ClaudeModelMapping = map[string]string{
|
| 18 |
+
"claude-opus-4-6": "GLM-4.7",
|
| 19 |
+
"claude-opus-4-5-20250514": "GLM-4.7",
|
| 20 |
+
"claude-sonnet-4-6": "GLM-4.7",
|
| 21 |
+
"claude-sonnet-4-5-20241022": "GLM-4.7",
|
| 22 |
+
"claude-haiku-4-5": "GLM-4.5-Air",
|
| 23 |
+
"claude-haiku-4-5-20251001": "GLM-4.5-Air",
|
| 24 |
+
"claude-3-5-sonnet-20241022": "GLM-4.7",
|
| 25 |
+
"claude-3-5-haiku-20241022": "GLM-4.5-Air",
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
// ResolveClaudeModel maps a Claude model name to a GLM model name with appropriate tags.
|
| 29 |
+
// Returns the resolved model name and whether thinking should be enabled.
|
| 30 |
+
func ResolveClaudeModel(model string, thinkingEnabled bool) (resolvedModel string, enableThinking bool) {
|
| 31 |
+
base, ok := ClaudeModelMapping[model]
|
| 32 |
+
if !ok {
|
| 33 |
+
// Unknown model: fallback to GLM-4.7
|
| 34 |
+
base = "GLM-4.7"
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
enableThinking = thinkingEnabled
|
| 38 |
+
// Opus models always enable thinking
|
| 39 |
+
if strings.Contains(model, "opus") {
|
| 40 |
+
enableThinking = true
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
resolvedModel = base
|
| 44 |
+
if enableThinking {
|
| 45 |
+
resolvedModel += "-thinking"
|
| 46 |
+
}
|
| 47 |
+
// Always enable tools for Claude requests (handled via prompt injection)
|
| 48 |
+
resolvedModel += "-tools"
|
| 49 |
+
return resolvedModel, enableThinking
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
// v1/models 返回的模型列表(不包含所有标签组合)
|
| 53 |
var ModelList = []string{
|
| 54 |
"GLM-4.5",
|
|
|
|
| 112 |
if target, ok := BaseModelMapping[baseModel]; ok {
|
| 113 |
return target
|
| 114 |
}
|
| 115 |
+
// Fallback: unknown models default to glm-4.7
|
| 116 |
+
return "glm-4.7"
|
| 117 |
}
|