feat(probe): add model discovery and canonical family normalization
This commit is contained in:
61
internal/probe/aliases_test.go
Normal file
61
internal/probe/aliases_test.go
Normal file
@@ -0,0 +1,61 @@
|
||||
package probe
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestCanonicalModelFamily(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
t.Run("kimi aliases collapse into one family", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
variants := []string{"kimi 2.6", "kimi-2.6", "kimi-k2.6", "Kimi-K2.6"}
|
||||
for _, variant := range variants {
|
||||
if got := CanonicalModelFamily(variant); got != "kimi-2.6" {
|
||||
t.Fatalf("CanonicalModelFamily(%q) = %q, want %q", variant, got, "kimi-2.6")
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("deepseek vendor prefix normalizes away", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
if got := NormalizeModelID("deepseek-ai/DeepSeek-V4-Pro"); got != "deepseek-v4-pro" {
|
||||
t.Fatalf("NormalizeModelID() = %q, want %q", got, "deepseek-v4-pro")
|
||||
}
|
||||
if got := CanonicalModelID("deepseek-ai/DeepSeek-V4-Pro"); got != "deepseek-v4-pro" {
|
||||
t.Fatalf("CanonicalModelID() = %q, want %q", got, "deepseek-v4-pro")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("alias table and requested model resolution prefer discovered ids", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
rawModels := []string{"deepseek-ai/DeepSeek-V4-Pro", "kimi-k2.6"}
|
||||
table := BuildAliasTable(rawModels)
|
||||
if got := table["deepseek-v4-pro"].Canonical; got != "deepseek-v4-pro" {
|
||||
t.Fatalf("alias canonical = %q, want %q", got, "deepseek-v4-pro")
|
||||
}
|
||||
|
||||
resolved, ok := ResolveRequestedModel("DeepSeek V4 Pro", rawModels)
|
||||
if !ok {
|
||||
t.Fatal("ResolveRequestedModel() ok = false, want true")
|
||||
}
|
||||
if resolved != "deepseek-ai/DeepSeek-V4-Pro" {
|
||||
t.Fatalf("ResolveRequestedModel() = %q, want discovered raw id", resolved)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("recommend models returns canonical discovered candidates", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
rawModels := []string{"kimi-k2.6", "deepseek-ai/DeepSeek-V4-Pro"}
|
||||
got := RecommendModels([]string{"kimi 2.6", "DeepSeek V4 Pro", "unknown"}, rawModels)
|
||||
want := []string{"kimi-k2.6", "deepseek-ai/DeepSeek-V4-Pro"}
|
||||
if !reflect.DeepEqual(got, want) {
|
||||
t.Fatalf("RecommendModels() = %#v, want %#v", got, want)
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user