mirror of
https://github.com/ollama/ollama.git
synced 2026-04-18 09:03:35 -04:00
Following up on #15560, this change now has e2b/e4b render differently from 26b/31b. For backwards compatibility, we take the existing renderer name `gemma4` and make it do dynamic resolution based on the model name/size, but the intended use is for the models to be republished with the renderer variant specified explicitly: `gemma4-small` or `gemma4-large`.
79 lines
1.7 KiB
Go
79 lines
1.7 KiB
Go
package server
|
|
|
|
import "testing"
|
|
|
|
func TestResolveGemma4Renderer(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
model *Model
|
|
want string
|
|
}{
|
|
{
|
|
name: "nil model falls back to legacy alias",
|
|
model: nil,
|
|
want: gemma4RendererLegacy,
|
|
},
|
|
{
|
|
name: "explicit small passes through",
|
|
model: &Model{
|
|
Config: testConfigWithRenderer(gemma4RendererSmall),
|
|
},
|
|
want: gemma4RendererSmall,
|
|
},
|
|
{
|
|
name: "explicit large passes through",
|
|
model: &Model{
|
|
Config: testConfigWithRenderer(gemma4RendererLarge),
|
|
},
|
|
want: gemma4RendererLarge,
|
|
},
|
|
{
|
|
name: "legacy e4b tag resolves small",
|
|
model: &Model{
|
|
Name: "gemma4:e4b",
|
|
ShortName: "gemma4:e4b",
|
|
Config: testConfigWithRenderer(gemma4RendererLegacy),
|
|
},
|
|
want: gemma4RendererSmall,
|
|
},
|
|
{
|
|
name: "legacy 31b tag resolves large",
|
|
model: &Model{
|
|
Name: "gemma4:31b-cloud",
|
|
ShortName: "gemma4:31b-cloud",
|
|
Config: testConfigWithRenderer(gemma4RendererLegacy),
|
|
},
|
|
want: gemma4RendererLarge,
|
|
},
|
|
{
|
|
name: "legacy model type resolves small",
|
|
model: &Model{
|
|
Config: testConfigWithRendererAndType(gemma4RendererLegacy, "4.3B"),
|
|
},
|
|
want: gemma4RendererSmall,
|
|
},
|
|
{
|
|
name: "legacy model type resolves large",
|
|
model: &Model{
|
|
Config: testConfigWithRendererAndType(gemma4RendererLegacy, "25.2B"),
|
|
},
|
|
want: gemma4RendererLarge,
|
|
},
|
|
{
|
|
name: "legacy unknown defaults small",
|
|
model: &Model{
|
|
Config: testConfigWithRenderer(gemma4RendererLegacy),
|
|
},
|
|
want: gemma4RendererSmall,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := resolveGemma4Renderer(tt.model); got != tt.want {
|
|
t.Fatalf("resolveGemma4Renderer() = %q, want %q", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|