ss22345 commited on
Commit
3a315de
·
1 Parent(s): 85aaf7e

feat: add Claude-to-GLM model name mapping

Browse files

Map 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.

Files changed (1) hide show
  1. 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
- return model
 
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
  }