diff options
Diffstat (limited to 'internal/llmutils')
| -rw-r--r-- | internal/llmutils/client.go | 20 | ||||
| -rw-r--r-- | internal/llmutils/client_test.go | 16 |
2 files changed, 32 insertions, 4 deletions
diff --git a/internal/llmutils/client.go b/internal/llmutils/client.go index 16a6338..3641556 100644 --- a/internal/llmutils/client.go +++ b/internal/llmutils/client.go @@ -21,13 +21,25 @@ func CanonicalProvider(name string) string { func DefaultModelForProvider(cfg appconfig.App, provider string) string { switch CanonicalProvider(provider) { case "openrouter": - return strings.TrimSpace(cfg.OpenRouterModel) + if model := strings.TrimSpace(cfg.OpenRouterModel); model != "" { + return model + } + return "openrouter/auto" case "ollama": - return strings.TrimSpace(cfg.OllamaModel) + if model := strings.TrimSpace(cfg.OllamaModel); model != "" { + return model + } + return "qwen3-coder:30b-a3b-q4_K_M" case "anthropic": - return strings.TrimSpace(cfg.AnthropicModel) + if model := strings.TrimSpace(cfg.AnthropicModel); model != "" { + return model + } + return "claude-3-5-sonnet-20240620" default: - return strings.TrimSpace(cfg.OpenAIModel) + if model := strings.TrimSpace(cfg.OpenAIModel); model != "" { + return model + } + return "gpt-4.1" } } diff --git a/internal/llmutils/client_test.go b/internal/llmutils/client_test.go index 837d408..0e38476 100644 --- a/internal/llmutils/client_test.go +++ b/internal/llmutils/client_test.go @@ -56,6 +56,22 @@ func TestDefaultModelForProvider(t *testing.T) { } } +func TestDefaultModelForProvider_Fallbacks(t *testing.T) { + cfg := appconfig.App{} + if got := DefaultModelForProvider(cfg, "openai"); got != "gpt-4.1" { + t.Fatalf("openai fallback = %q", got) + } + if got := DefaultModelForProvider(cfg, "openrouter"); got != "openrouter/auto" { + t.Fatalf("openrouter fallback = %q", got) + } + if got := DefaultModelForProvider(cfg, "ollama"); got != "qwen3-coder:30b-a3b-q4_K_M" { + t.Fatalf("ollama fallback = %q", got) + } + if got := DefaultModelForProvider(cfg, "anthropic"); got != "claude-3-5-sonnet-20240620" { + t.Fatalf("anthropic fallback = %q", got) + } +} + func TestConfigForProvider(t *testing.T) { base := appconfig.App{ Provider: "openai", |
