mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-10-17 13:08:57 +08:00
feat(devin): map model aliases and swe-1-7/haiku/sonnet/gpt-4-1 UIDs
This commit is contained in:
@@ -113,6 +113,12 @@ func ResolveDevinChatModelUID(rawModel string, thinkingLevel string, budgetToken
|
||||
clamped := clampEffort(effort, swe2Efforts, "high")
|
||||
return "swe-2-" + clamped
|
||||
|
||||
case strings.Contains(lowerBase, "swe-1-7") || strings.Contains(lowerBase, "swe-1.7"):
|
||||
if effort == "medium" {
|
||||
return "swe-1-7-medium"
|
||||
}
|
||||
return "swe-1-7"
|
||||
|
||||
case strings.Contains(lowerBase, "fable-5-1") || strings.Contains(lowerBase, "fable-5.1"):
|
||||
clamped := clampEffort(effort, fable51Efforts, "medium")
|
||||
return "claude-fable-5-1-" + clamped
|
||||
@@ -121,10 +127,22 @@ func ResolveDevinChatModelUID(rawModel string, thinkingLevel string, budgetToken
|
||||
clamped := clampEffort(effort, fable51Efforts, "medium")
|
||||
return "claude-5-fable-" + clamped
|
||||
|
||||
case strings.Contains(lowerBase, "claude-haiku-4-5") || strings.Contains(lowerBase, "claude-haiku-4.5") || strings.Contains(lowerBase, "haiku-4-5"):
|
||||
return "MODEL_PRIVATE_11"
|
||||
|
||||
case strings.Contains(lowerBase, "claude-sonnet-4-5") || strings.Contains(lowerBase, "claude-sonnet-4.5") || strings.Contains(lowerBase, "sonnet-4-5"):
|
||||
if effort != "" && effort != "none" {
|
||||
return "MODEL_PRIVATE_3"
|
||||
}
|
||||
return "MODEL_PRIVATE_2"
|
||||
|
||||
case strings.Contains(lowerBase, "astra"):
|
||||
clamped := clampEffort(effort, astraEfforts, "medium")
|
||||
return "gpt-6-astra-" + clamped
|
||||
|
||||
case strings.Contains(lowerBase, "gpt-4-1") || strings.Contains(lowerBase, "gpt-4.1"):
|
||||
return "MODEL_CHAT_GPT_4_1_2025_04_14"
|
||||
|
||||
case strings.Contains(lowerBase, "glm-5-2") || strings.Contains(lowerBase, "glm-5.2"):
|
||||
if effort == "none" {
|
||||
return "glm-5-2-none"
|
||||
@@ -139,6 +157,10 @@ func ResolveDevinChatModelUID(rawModel string, thinkingLevel string, budgetToken
|
||||
clamped := clampEffort(effort, gemini38Efforts, "high")
|
||||
return "gemini-3-8-flash-" + clamped
|
||||
|
||||
case lowerBase == "gemini-3-flash":
|
||||
clamped := clampEffort(effort, gemini38Efforts, "high")
|
||||
return "gemini-3-8-flash-" + clamped
|
||||
|
||||
case strings.Contains(lowerBase, "grok-4-6") || strings.Contains(lowerBase, "grok-4.6"):
|
||||
clamped := clampEffort(effort, grok46Efforts, "high")
|
||||
return "grok-4-6-" + clamped
|
||||
|
||||
@@ -172,6 +172,48 @@ func TestResolveDevinChatModelUID(t *testing.T) {
|
||||
thinkingLevel: "",
|
||||
want: "deepseek-v4-1-flash-max",
|
||||
},
|
||||
{
|
||||
name: "swe-1-7 default maps to swe-1-7",
|
||||
rawModel: "devin/swe-1-7",
|
||||
thinkingLevel: "",
|
||||
want: "swe-1-7",
|
||||
},
|
||||
{
|
||||
name: "swe-1-7 with medium maps to swe-1-7-medium",
|
||||
rawModel: "devin/swe-1-7:medium",
|
||||
thinkingLevel: "",
|
||||
want: "swe-1-7-medium",
|
||||
},
|
||||
{
|
||||
name: "claude-haiku-4-5 maps to MODEL_PRIVATE_11",
|
||||
rawModel: "devin/claude-haiku-4-5",
|
||||
thinkingLevel: "",
|
||||
want: "MODEL_PRIVATE_11",
|
||||
},
|
||||
{
|
||||
name: "claude-sonnet-4-5 non-thinking maps to MODEL_PRIVATE_2",
|
||||
rawModel: "devin/claude-sonnet-4-5",
|
||||
thinkingLevel: "",
|
||||
want: "MODEL_PRIVATE_2",
|
||||
},
|
||||
{
|
||||
name: "claude-sonnet-4-5 thinking maps to MODEL_PRIVATE_3",
|
||||
rawModel: "devin/claude-sonnet-4-5:high",
|
||||
thinkingLevel: "",
|
||||
want: "MODEL_PRIVATE_3",
|
||||
},
|
||||
{
|
||||
name: "gpt-4-1 maps to MODEL_CHAT_GPT_4_1_2025_04_14",
|
||||
rawModel: "devin/gpt-4-1",
|
||||
thinkingLevel: "",
|
||||
want: "MODEL_CHAT_GPT_4_1_2025_04_14",
|
||||
},
|
||||
{
|
||||
name: "gemini-3-flash alias maps to gemini-3-8-flash-high",
|
||||
rawModel: "devin/gemini-3-flash",
|
||||
thinkingLevel: "",
|
||||
want: "gemini-3-8-flash-high",
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
|
||||
Reference in New Issue
Block a user