From c2495efc9022420ab3edcd78bff1fc259624467e Mon Sep 17 00:00:00 2001 From: liugangjian Date: Thu, 5 Mar 2026 09:23:13 +0800 Subject: [PATCH] fix: local picolm provider no longer requires API key (#488) - Add providerTypePicoLM constant for local picolm provider - Add explicit 'picolm' case in provider selection - Add fallback case for models starting with 'picolm/' - Local picolm provider now bypasses API key requirement - Fixes issue where local inference with GGUF models failed with 'no API key' error --- pkg/providers/factory.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pkg/providers/factory.go b/pkg/providers/factory.go index 5b3e42b9e..0b16ff17f 100644 --- a/pkg/providers/factory.go +++ b/pkg/providers/factory.go @@ -22,6 +22,7 @@ const ( providerTypeClaudeCLI providerTypeCodexCLI providerTypeGitHubCopilot + providerTypePicoLM ) type providerSelection struct { @@ -199,6 +200,15 @@ func resolveProviderSelection(cfg *config.Config) (providerSelection, error) { } sel.connectMode = cfg.Providers.GitHubCopilot.ConnectMode return sel, nil + case "picolm": + // Local picolm provider - no API key required + workspace := cfg.WorkspacePath() + if workspace == "" { + workspace = "." + } + sel.providerType = providerTypePicoLM + sel.workspace = workspace + return sel, nil } } @@ -300,6 +310,15 @@ func resolveProviderSelection(cfg *config.Config) (providerSelection, error) { if sel.apiBase == "" { sel.apiBase = "https://api.mistral.ai/v1" } + case strings.Contains(lowerModel, "picolm") || strings.HasPrefix(model, "picolm/"): + // Local picolm provider - no API key required + workspace := cfg.WorkspacePath() + if workspace == "" { + workspace = "." + } + sel.providerType = providerTypePicoLM + sel.workspace = workspace + return sel, nil case cfg.Providers.VLLM.APIBase != "": sel.apiKey = cfg.Providers.VLLM.APIKey sel.apiBase = cfg.Providers.VLLM.APIBase