From 44f0b654acf09d0d0da5c5960f921ec8ceeacfe4 Mon Sep 17 00:00:00 2001 From: GemayelLira Date: Thu, 12 Feb 2026 14:35:57 -0300 Subject: [PATCH] feat(providers): add OpenAI-compatible endpoint support for GLM/Zai models Enables using GLM and Zai models (e.g. zai-org/GLM-4.6) with custom OpenAI-compatible API endpoints like Chutes.ai. When model contains 'glm' or 'zai' and OpenAI provider has a custom api_base (not api.openai.com), the provider will route requests to the custom endpoint with the model name passed as-is. Resolves configuration issues when using Chutes.ai with PicoClaw. --- pkg/providers/http_provider.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/providers/http_provider.go b/pkg/providers/http_provider.go index 7179c4cc5..d6630a1f2 100644 --- a/pkg/providers/http_provider.go +++ b/pkg/providers/http_provider.go @@ -348,6 +348,13 @@ func CreateProvider(cfg *config.Config) (LLMProvider, error) { apiBase = "https://generativelanguage.googleapis.com/v1beta" } + // GLM/Zai via OpenAI-compatible endpoint (ex: Chutes.ai) + case (strings.Contains(lowerModel, "glm") || strings.Contains(lowerModel, "zai")) && cfg.Providers.OpenAI.APIKey != "" && + cfg.Providers.OpenAI.APIBase != "" && cfg.Providers.OpenAI.APIBase != "https://api.openai.com/v1": + apiKey = cfg.Providers.OpenAI.APIKey + apiBase = cfg.Providers.OpenAI.APIBase + proxy = cfg.Providers.OpenAI.Proxy + case (strings.Contains(lowerModel, "glm") || strings.Contains(lowerModel, "zhipu") || strings.Contains(lowerModel, "zai")) && cfg.Providers.Zhipu.APIKey != "": apiKey = cfg.Providers.Zhipu.APIKey apiBase = cfg.Providers.Zhipu.APIBase