From 4e7870d53ae0051718c7e4c17703369fdbdf44f3 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Wed, 21 Jan 2026 17:39:48 -0300 Subject: [PATCH] feat: update z.ai provider list (#161) Signed-off-by: Carlos Alexandro Becker --- CRUSH.md | 8 +++++ internal/providers/configs/zai.json | 55 ++++++++++++++++++++++------- 2 files changed, 50 insertions(+), 13 deletions(-) diff --git a/CRUSH.md b/CRUSH.md index a336013b5d9e6b7b9447b2ad8926d6ca889e25b6..133421d942d38fe18e88750f6e521cb0daf62123 100644 --- a/CRUSH.md +++ b/CRUSH.md @@ -22,3 +22,11 @@ - HTTP: Always set timeouts, use context, defer close response bodies - JSON: Use `json.MarshalIndent` for pretty output, validate unmarshaling - File permissions: Use 0o600 for sensitive config files + +## Updating providers manually + +### Zai + +For `zai`, we'll need to grab the model list and capabilities from `https://docs.z.ai/guides/overview/overview`. + +That page does not contain the exact `context_window` and `default_max_tokens` though. We can grab the exact value from `./internal/providers/configs/openrouter.json`. diff --git a/internal/providers/configs/zai.json b/internal/providers/configs/zai.json index e010ff00d535c18e5eb2edde887b700375d0ee08..d4cd75ae8deb249b2b355485c7a9823e7c457d69 100644 --- a/internal/providers/configs/zai.json +++ b/internal/providers/configs/zai.json @@ -5,54 +5,83 @@ "api_endpoint": "https://api.z.ai/api/coding/paas/v4", "type": "openai-compat", "default_large_model_id": "glm-4.7", - "default_small_model_id": "glm-4.5-air", + "default_small_model_id": "glm-4.7-flash", "models": [ { "id": "glm-4.7", "name": "GLM-4.7", - "cost_per_1m_in": 0.6, + "cost_per_1m_in": 0.42, "cost_per_1m_out": 2.2, "cost_per_1m_in_cached": 0.11, - "cost_per_1m_out_cached": 0, "context_window": 204800, - "default_max_tokens": 131072, + "default_max_tokens": 102400, + "can_reason": true, + "supports_attachments": false + }, + { + "id": "glm-4.7-flash", + "name": "GLM-4.7 Flash", + "cost_per_1m_in": 0.07, + "cost_per_1m_out": 0.4, + "cost_per_1m_in_cached": 0.01, + "context_window": 200000, + "default_max_tokens": 65550, "can_reason": true, "supports_attachments": false }, { "id": "glm-4.6", "name": "GLM-4.6", - "cost_per_1m_in": 0.6, - "cost_per_1m_out": 2.2, + "cost_per_1m_in": 0.39, + "cost_per_1m_out": 1.9, "cost_per_1m_in_cached": 0.11, - "cost_per_1m_out_cached": 0, "context_window": 204800, - "default_max_tokens": 131072, + "default_max_tokens": 102400, "can_reason": true, "supports_attachments": false }, + { + "id": "glm-4.6v", + "name": "GLM-4.6V", + "cost_per_1m_in": 0.3, + "cost_per_1m_out": 0.9, + "context_window": 131072, + "default_max_tokens": 65536, + "can_reason": true, + "supports_attachments": true + }, { "id": "glm-4.5", "name": "GLM-4.5", "cost_per_1m_in": 0.6, "cost_per_1m_out": 2.2, "cost_per_1m_in_cached": 0.11, - "cost_per_1m_out_cached": 0, "context_window": 131072, - "default_max_tokens": 98304, + "default_max_tokens": 49152, "can_reason": true, "supports_attachments": false }, { "id": "glm-4.5-air", "name": "GLM-4.5-Air", - "cost_per_1m_in": 0.2, - "cost_per_1m_out": 1.1, + "cost_per_1m_in": 0.13, + "cost_per_1m_out": 0.85, "cost_per_1m_in_cached": 0.03, "context_window": 131072, - "default_max_tokens": 98304, + "default_max_tokens": 49152, "can_reason": true, "supports_attachments": false + }, + { + "id": "glm-4.5v", + "name": "GLM-4.5V", + "cost_per_1m_in": 0.6, + "cost_per_1m_out": 1.8, + "cost_per_1m_in_cached": 0.11, + "context_window": 65536, + "default_max_tokens": 8192, + "can_reason": true, + "supports_attachments": true } ] }