Migrate zai provider from Anthropic to OpenAI-compatible API

- Change all zai models from anthropic-messages to openai-completions API
- Update baseUrl from https://api.z.ai/api/anthropic to https://api.z.ai/api/coding/paas/v4
- Add compat setting to disable developer role for zai
- Update zai provider tests to use OpenAI-style options (reasoningEffort instead of thinkingEnabled/thinkingBudgetTokens)
- Enable previously disabled thinking and image input tests for zai models
This commit is contained in:
Anton Kuzmenko 2025-12-28 13:37:34 -08:00
parent 93ea8298ab
commit e9c6d95e6b
2 changed files with 37 additions and 33 deletions

View file

@ -6978,9 +6978,10 @@ export const MODELS = {
"glm-4.5": {
id: "glm-4.5",
name: "GLM-4.5",
api: "anthropic-messages",
api: "openai-completions",
provider: "zai",
baseUrl: "https://api.z.ai/api/anthropic",
baseUrl: "https://api.z.ai/api/coding/paas/v4",
compat: {"supportsDeveloperRole":false},
reasoning: true,
input: ["text"],
cost: {
@ -6991,13 +6992,14 @@ export const MODELS = {
},
contextWindow: 131072,
maxTokens: 98304,
} satisfies Model<"anthropic-messages">,
} satisfies Model<"openai-completions">,
"glm-4.5-air": {
id: "glm-4.5-air",
name: "GLM-4.5-Air",
api: "anthropic-messages",
api: "openai-completions",
provider: "zai",
baseUrl: "https://api.z.ai/api/anthropic",
baseUrl: "https://api.z.ai/api/coding/paas/v4",
compat: {"supportsDeveloperRole":false},
reasoning: true,
input: ["text"],
cost: {
@ -7008,13 +7010,14 @@ export const MODELS = {
},
contextWindow: 131072,
maxTokens: 98304,
} satisfies Model<"anthropic-messages">,
} satisfies Model<"openai-completions">,
"glm-4.5-flash": {
id: "glm-4.5-flash",
name: "GLM-4.5-Flash",
api: "anthropic-messages",
api: "openai-completions",
provider: "zai",
baseUrl: "https://api.z.ai/api/anthropic",
baseUrl: "https://api.z.ai/api/coding/paas/v4",
compat: {"supportsDeveloperRole":false},
reasoning: true,
input: ["text"],
cost: {
@ -7025,13 +7028,14 @@ export const MODELS = {
},
contextWindow: 131072,
maxTokens: 98304,
} satisfies Model<"anthropic-messages">,
} satisfies Model<"openai-completions">,
"glm-4.5v": {
id: "glm-4.5v",
name: "GLM-4.5V",
api: "anthropic-messages",
api: "openai-completions",
provider: "zai",
baseUrl: "https://api.z.ai/api/anthropic",
baseUrl: "https://api.z.ai/api/coding/paas/v4",
compat: {"supportsDeveloperRole":false},
reasoning: true,
input: ["text", "image"],
cost: {
@ -7042,13 +7046,14 @@ export const MODELS = {
},
contextWindow: 64000,
maxTokens: 16384,
} satisfies Model<"anthropic-messages">,
} satisfies Model<"openai-completions">,
"glm-4.6": {
id: "glm-4.6",
name: "GLM-4.6",
api: "anthropic-messages",
api: "openai-completions",
provider: "zai",
baseUrl: "https://api.z.ai/api/anthropic",
baseUrl: "https://api.z.ai/api/coding/paas/v4",
compat: {"supportsDeveloperRole":false},
reasoning: true,
input: ["text"],
cost: {
@ -7059,13 +7064,14 @@ export const MODELS = {
},
contextWindow: 204800,
maxTokens: 131072,
} satisfies Model<"anthropic-messages">,
} satisfies Model<"openai-completions">,
"glm-4.6v": {
id: "glm-4.6v",
name: "GLM-4.6V",
api: "anthropic-messages",
api: "openai-completions",
provider: "zai",
baseUrl: "https://api.z.ai/api/anthropic",
baseUrl: "https://api.z.ai/api/coding/paas/v4",
compat: {"supportsDeveloperRole":false},
reasoning: true,
input: ["text", "image"],
cost: {
@ -7076,13 +7082,14 @@ export const MODELS = {
},
contextWindow: 128000,
maxTokens: 32768,
} satisfies Model<"anthropic-messages">,
} satisfies Model<"openai-completions">,
"glm-4.7": {
id: "glm-4.7",
name: "GLM-4.7",
api: "anthropic-messages",
api: "openai-completions",
provider: "zai",
baseUrl: "https://api.z.ai/api/anthropic",
baseUrl: "https://api.z.ai/api/coding/paas/v4",
compat: {"supportsDeveloperRole":false},
reasoning: true,
input: ["text"],
cost: {
@ -7093,6 +7100,6 @@ export const MODELS = {
},
contextWindow: 204800,
maxTokens: 131072,
} satisfies Model<"anthropic-messages">,
} satisfies Model<"openai-completions">,
},
} as const;