diff --git a/internal/providers/configs/zai.json b/internal/providers/configs/zai.json new file mode 100644 index 0000000000000000000000000000000000000000..8058b622dfa2cb173cc68d1cec1ee5f18846c29e --- /dev/null +++ b/internal/providers/configs/zai.json @@ -0,0 +1,36 @@ +{ + "name": "Z.AI", + "id": "zai", + "api_key": "$ZAI_API_KEY", + "api_endpoint": "https://api.z.ai/api/paas/v4", + "type": "openai", + "default_large_model_id": "glm-4.5", + "default_small_model_id": "glm-4.5-air", + "models": [ + { + "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, + "can_reason": true, + "has_reasoning_efforts": false, + "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_cached": 0.03, + "context_window": 131072, + "default_max_tokens": 98304, + "can_reason": true, + "has_reasoning_efforts": false, + "supports_attachments": false + } + ] +} diff --git a/internal/providers/providers.go b/internal/providers/providers.go index a3634474452f634b81f9aa1b3604269fc5d7ed9e..012866fef14a7e86b80e54018ba2969c3fc52cb4 100644 --- a/internal/providers/providers.go +++ b/internal/providers/providers.go @@ -30,6 +30,9 @@ var vertexAIConfig []byte //go:embed configs/xai.json var xAIConfig []byte +//go:embed configs/zai.json +var zAIConfig []byte + //go:embed configs/bedrock.json var bedrockConfig []byte @@ -50,6 +53,7 @@ var providerRegistry = []ProviderFunc{ bedrockProvider, vertexAIProvider, xAIProvider, + zAIProvider, groqProvider, openRouterProvider, lambdaProvider, @@ -101,6 +105,10 @@ func xAIProvider() catwalk.Provider { return loadProviderFromConfig(xAIConfig) } +func zAIProvider() catwalk.Provider { + return loadProviderFromConfig(zAIConfig) +} + func openRouterProvider() catwalk.Provider { return loadProviderFromConfig(openRouterConfig) } diff --git a/pkg/catwalk/provider.go b/pkg/catwalk/provider.go index fa0094bb07a0d476b35e1858bf4ab79dc64b0647..6aa43b24ba2fb60069f2872a29d77fcebbf3ab63 100644 --- a/pkg/catwalk/provider.go +++ b/pkg/catwalk/provider.go @@ -25,6 +25,7 @@ const ( InferenceProviderBedrock InferenceProvider = "bedrock" InferenceProviderVertexAI InferenceProvider = "vertexai" InferenceProviderXAI InferenceProvider = "xai" + InferenceProviderZAI InferenceProvider = "zai" InferenceProviderGROQ InferenceProvider = "groq" InferenceProviderOpenRouter InferenceProvider = "openrouter" InferenceProviderLambda InferenceProvider = "lambda" @@ -69,6 +70,7 @@ func KnownProviders() []InferenceProvider { InferenceProviderBedrock, InferenceProviderVertexAI, InferenceProviderXAI, + InferenceProviderZAI, InferenceProviderGROQ, InferenceProviderOpenRouter, InferenceProviderLambda,