diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-02 13:42:06 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-02 13:42:06 +0200 |
| commit | 021785d750de2cd8d1f94334282a2b110b77c0fd (patch) | |
| tree | 06c1e4942af0e1885e4c872cbb99d4653a3ec8a6 /internal/hexailsp | |
| parent | 8a70afb354d0050f3f8e1142753284859036fa1c (diff) | |
llmutils: centralize provider normalization and client setup (task 410)
Diffstat (limited to 'internal/hexailsp')
| -rw-r--r-- | internal/hexailsp/run.go | 40 |
1 files changed, 5 insertions, 35 deletions
diff --git a/internal/hexailsp/run.go b/internal/hexailsp/run.go index 99779bb..250fc67 100644 --- a/internal/hexailsp/run.go +++ b/internal/hexailsp/run.go @@ -12,6 +12,7 @@ import ( "codeberg.org/snonux/hexai/internal/appconfig" "codeberg.org/snonux/hexai/internal/ignore" "codeberg.org/snonux/hexai/internal/llm" + "codeberg.org/snonux/hexai/internal/llmutils" "codeberg.org/snonux/hexai/internal/logging" "codeberg.org/snonux/hexai/internal/lsp" "codeberg.org/snonux/hexai/internal/runtimeconfig" @@ -116,44 +117,13 @@ func buildClientIfNil(cfg appconfig.App, client llm.Client) llm.Client { if client != nil { return client } - llmCfg := llm.Config{ - Provider: cfg.Provider, - RequestTimeout: cfg.RequestTimeout, - OpenAIBaseURL: cfg.OpenAIBaseURL, - OpenAIModel: cfg.OpenAIModel, - OpenAITemperature: cfg.OpenAITemperature, - OpenRouterBaseURL: cfg.OpenRouterBaseURL, - OpenRouterModel: cfg.OpenRouterModel, - OpenRouterTemperature: cfg.OpenRouterTemperature, - OllamaBaseURL: cfg.OllamaBaseURL, - OllamaModel: cfg.OllamaModel, - OllamaTemperature: cfg.OllamaTemperature, - AnthropicBaseURL: cfg.AnthropicBaseURL, - AnthropicModel: cfg.AnthropicModel, - AnthropicTemperature: cfg.AnthropicTemperature, - } - // Prefer HEXAI_OPENAI_API_KEY; fall back to OPENAI_API_KEY - oaKey := os.Getenv("HEXAI_OPENAI_API_KEY") - if strings.TrimSpace(oaKey) == "" { - oaKey = os.Getenv("OPENAI_API_KEY") - } - // Prefer HEXAI_OPENROUTER_API_KEY; fall back to OPENROUTER_API_KEY - orKey := os.Getenv("HEXAI_OPENROUTER_API_KEY") - if strings.TrimSpace(orKey) == "" { - orKey = os.Getenv("OPENROUTER_API_KEY") - } - // Prefer HEXAI_ANTHROPIC_API_KEY; fall back to ANTHROPIC_API_KEY - anKey := os.Getenv("HEXAI_ANTHROPIC_API_KEY") - if strings.TrimSpace(anKey) == "" { - anKey = os.Getenv("ANTHROPIC_API_KEY") - } - if c, err := llm.NewFromConfig(llmCfg, oaKey, orKey, anKey); err != nil { + c, err := llmutils.NewClientFromApp(cfg) + if err != nil { logging.Logf("lsp ", "llm disabled: %v", err) return nil - } else { - logging.Logf("lsp ", "llm enabled provider=%s model=%s", c.Name(), c.DefaultModel()) - return c } + logging.Logf("lsp ", "llm enabled provider=%s model=%s", c.Name(), c.DefaultModel()) + return c } func ensureFactory(factory ServerFactory) ServerFactory { |
