From 9bdcf18b45c2ea4ef2d20add7ba384c362fd889a Mon Sep 17 00:00:00 2001 From: XYSK-lilong007 <267018309+XYSK-lilong007@users.noreply.github.com> Date: Thu, 12 Mar 2026 01:24:12 +0800 Subject: [PATCH] fix: preserve openrouter model ids with custom api base --- pkg/providers/openai_compat/provider.go | 4 ++++ pkg/providers/openai_compat/provider_test.go | 3 +++ 2 files changed, 7 insertions(+) diff --git a/pkg/providers/openai_compat/provider.go b/pkg/providers/openai_compat/provider.go index 0e8db74097..1dea20dbca 100644 --- a/pkg/providers/openai_compat/provider.go +++ b/pkg/providers/openai_compat/provider.go @@ -433,6 +433,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 9a3a7acc5c..3c519d53ab 100644 --- a/pkg/providers/openai_compat/provider_test.go +++ b/pkg/providers/openai_compat/provider_test.go @@ -517,6 +517,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") }