From 07d02d93dbb7a8167758f678c68b5a1a520167c8 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 17 Aug 2025 08:43:53 +0300 Subject: llm: add GitHub Copilot provider - Implement copilot client reading COPILOT_API_KEY - Wire copilot_base_url and copilot_model config - Update README and config example; defaults to gpt-4.1 - Keep OpenAI default at gpt-4.1 for consistency --- cmd/hexai/main.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'cmd') diff --git a/cmd/hexai/main.go b/cmd/hexai/main.go index 941460e..25b5281 100644 --- a/cmd/hexai/main.go +++ b/cmd/hexai/main.go @@ -53,9 +53,12 @@ func main() { OpenAIModel: cfg.OpenAIModel, OllamaBaseURL: cfg.OllamaBaseURL, OllamaModel: cfg.OllamaModel, + CopilotBaseURL: cfg.CopilotBaseURL, + CopilotModel: cfg.CopilotModel, } oaKey := os.Getenv("OPENAI_API_KEY") - if c, err := llm.NewFromConfig(llmCfg, oaKey); err != nil { + cpKey := os.Getenv("COPILOT_API_KEY") + if c, err := llm.NewFromConfig(llmCfg, oaKey, cpKey); err != nil { logging.Logf("lsp ", "llm disabled: %v", err) } else { client = c @@ -93,6 +96,8 @@ type appConfig struct { OpenAIModel string `json:"openai_model"` OllamaBaseURL string `json:"ollama_base_url"` OllamaModel string `json:"ollama_model"` + CopilotBaseURL string `json:"copilot_base_url"` + CopilotModel string `json:"copilot_model"` } func loadConfig(logger *log.Logger) appConfig { @@ -157,5 +162,11 @@ func loadConfig(logger *log.Logger) appConfig { if strings.TrimSpace(fileCfg.OllamaModel) != "" { cfg.OllamaModel = fileCfg.OllamaModel } + if strings.TrimSpace(fileCfg.CopilotBaseURL) != "" { + cfg.CopilotBaseURL = fileCfg.CopilotBaseURL + } + if strings.TrimSpace(fileCfg.CopilotModel) != "" { + cfg.CopilotModel = fileCfg.CopilotModel + } return cfg } -- cgit v1.2.3