39 lines
1.8 KiB
Go
39 lines
1.8 KiB
Go
package ratio_setting
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/QuantumNous/new-api/setting/model_setting"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestFormatMatchingModelNameDoesNotStripBase(t *testing.T) {
|
|
assert.Equal(t, "qwen3-max@thinking:on", FormatMatchingModelName("qwen3-max@thinking:on"))
|
|
assert.Equal(t, "claude-3-7-sonnet-thinking", FormatMatchingModelName("claude-3-7-sonnet-thinking"))
|
|
assert.Equal(t, "gemini-2.5-flash-thinking-*", FormatMatchingModelName("gemini-2.5-flash-thinking-8192"))
|
|
assert.Equal(t, "gpt-4-gizmo-*", FormatMatchingModelName("gpt-4-gizmo-abc"))
|
|
}
|
|
|
|
func TestRoutingMatchModelNameStripsThenWildcards(t *testing.T) {
|
|
assert.Equal(t, "qwen3-max", RoutingMatchModelName("qwen3-max@thinking:on@temperature:0.2"))
|
|
assert.Equal(t, "claude-3-7-sonnet", RoutingMatchModelName("claude-3-7-sonnet-thinking"))
|
|
assert.Equal(t, "gemini-2.5-flash-thinking-*", RoutingMatchModelName("gemini-2.5-flash-thinking-8192"))
|
|
assert.Equal(t, "gpt-5.1-codex-max", RoutingMatchModelName("gpt-5.1-codex-max"))
|
|
|
|
geminiSettings := model_setting.GetGeminiSettings()
|
|
old := geminiSettings.ThinkingAdapterEnabled
|
|
geminiSettings.ThinkingAdapterEnabled = true
|
|
t.Cleanup(func() { geminiSettings.ThinkingAdapterEnabled = old })
|
|
assert.Equal(t, "gemini-2.5-flash", RoutingMatchModelName("gemini-2.5-flash-thinking-8192"))
|
|
}
|
|
|
|
func TestRoutingMatchModelNamePreservesExemptAtName(t *testing.T) {
|
|
settings := model_setting.GetGlobalSettings()
|
|
original := append([]string(nil), settings.ThinkingModelBlacklist...)
|
|
t.Cleanup(func() { settings.ThinkingModelBlacklist = original })
|
|
settings.ThinkingModelBlacklist = append(original, "re:.*@sha256:.*")
|
|
|
|
assert.Equal(t, "opaque@sha256:deadbeef", RoutingMatchModelName("opaque@sha256:deadbeef"))
|
|
assert.Equal(t, "kimi-k2-thinking", RoutingMatchModelName("kimi-k2-thinking"))
|
|
}
|