From 11ca7c89c44a9fee92b3a32baaf9f8dc4fd1411a Mon Sep 17 00:00:00 2001 From: cybermaggedon Date: Wed, 1 Jul 2026 16:20:43 +0100 Subject: [PATCH] feat: add GLM (Zhipu AI) variant for OpenAI processor (#1009) --- .../model/text_completion/openai/variants.py | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/trustgraph-flow/trustgraph/model/text_completion/openai/variants.py b/trustgraph-flow/trustgraph/model/text_completion/openai/variants.py index d49b8991..0c314a04 100644 --- a/trustgraph-flow/trustgraph/model/text_completion/openai/variants.py +++ b/trustgraph-flow/trustgraph/model/text_completion/openai/variants.py @@ -129,6 +129,28 @@ class MistralVariant(Variant): return {"reasoning_effort": effort} +class GlmVariant(Variant): + """GLM / Zhipu AI API (GLM-4, GLM-4.7, etc.).""" + + name = "glm" + token_param = "max_tokens" + temperature_with_thinking = True + + def completion_kwargs(self, max_output, temperature, thinking): + enabled = "enabled" if thinking != "off" else "disabled" + kwargs = { + self.token_param: max_output, + "temperature": temperature, + "extra_body": { + "thinking": {"type": enabled}, + }, + } + return kwargs + + def thinking_kwargs(self, effort): + return {} + + class LlamaVariant(Variant): """Llama models via OpenAI-compatible servers (vLLM, Ollama, etc.). @@ -159,6 +181,7 @@ VARIANTS = { "deepseek": DeepSeekVariant, "qwen": QwenVariant, "mistral": MistralVariant, + "glm": GlmVariant, "llama": LlamaVariant, }