diff options
| author | Paul Buetow <paul@buetow.org> | 2025-08-17 08:43:53 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-08-17 08:43:53 +0300 |
| commit | 07d02d93dbb7a8167758f678c68b5a1a520167c8 (patch) | |
| tree | ffa0698323175c2c5fa591420f2c33d1bcb9e069 /cmd | |
| parent | d44ae13e97eff75704b0fbd90814811dcc98eff5 (diff) | |
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
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/hexai/main.go | 13 |
1 files changed, 12 insertions, 1 deletions
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 } |
