diff --git a/pkg/providers/openai_compat/provider.go b/pkg/providers/openai_compat/provider.go index f97bf3acd..5901da304 100644 --- a/pkg/providers/openai_compat/provider.go +++ b/pkg/providers/openai_compat/provider.go @@ -462,6 +462,10 @@ func normalizeModel(model, apiBase string) string { return model } + if strings.HasPrefix(strings.ToLower(model), "openrouter/") { + return model + } + if strings.Contains(strings.ToLower(apiBase), "openrouter.ai") { return model } diff --git a/pkg/providers/openai_compat/provider_test.go b/pkg/providers/openai_compat/provider_test.go index 41f278a1b..60d46d3a8 100644 --- a/pkg/providers/openai_compat/provider_test.go +++ b/pkg/providers/openai_compat/provider_test.go @@ -566,6 +566,9 @@ func TestNormalizeModel_UsesAPIBase(t *testing.T) { if got := normalizeModel("openrouter/auto", "https://openrouter.ai/api/v1"); got != "openrouter/auto" { t.Fatalf("normalizeModel(openrouter) = %q, want %q", got, "openrouter/auto") } + if got := normalizeModel("openrouter/free", "https://gateway.example.com/v1"); got != "openrouter/free" { + t.Fatalf("normalizeModel(openrouter custom api_base) = %q, want %q", got, "openrouter/free") + } if got := normalizeModel("vivgrid/managed", "https://api.vivgrid.com/v1"); got != "managed" { t.Fatalf("normalizeModel(vivgrid) = %q, want %q", got, "managed") }