fix(zai): fall back to manifest baseUrl for synthesized GLM-5 models … · openclaw/openclaw@db54a32
Pandah97
·
2026-06-21
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -189,6 +189,26 @@ describe("zai provider plugin", () => {
|
189 | 189 | ).toEqual(registered); |
190 | 190 | }); |
191 | 191 | |
| 192 | +it("falls back to manifest baseUrl when both providerConfig and template model are unavailable", async () => { |
| 193 | +const provider = await registerSingleProviderPlugin(plugin); |
| 194 | + |
| 195 | +const resolved = provider.resolveDynamicModel?.({ |
| 196 | +provider: "zai", |
| 197 | +modelId: "glm-5-turbo", |
| 198 | +modelRegistry: { |
| 199 | +find: () => null, |
| 200 | +}, |
| 201 | +} as never) as Record<string, unknown> | undefined; |
| 202 | +expectModelFields(resolved, { |
| 203 | +id: "glm-5-turbo", |
| 204 | +provider: "zai", |
| 205 | +api: "openai-completions", |
| 206 | +baseUrl: "https://api.z.ai/api/paas/v4", |
| 207 | +reasoning: true, |
| 208 | +input: ["text"], |
| 209 | +}); |
| 210 | +}); |
| 211 | + |
192 | 212 | it("still synthesizes unknown GLM-5 variants from the GLM-4.7 template", async () => { |
193 | 213 | const provider = await registerSingleProviderPlugin(plugin); |
194 | 214 | const template = createGlm47Template(); |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -34,7 +34,7 @@ import { fetchZaiUsage } from "openclaw/plugin-sdk/provider-usage";
|
34 | 34 | import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime"; |
35 | 35 | import { detectZaiEndpoint, type ZaiEndpointId } from "./detect.js"; |
36 | 36 | import { zaiMediaUnderstandingProvider } from "./media-understanding-provider.js"; |
37 | | -import { buildZaiModelDefinition } from "./model-definitions.js"; |
| 37 | +import { buildZaiModelDefinition, resolveZaiBaseUrl } from "./model-definitions.js"; |
38 | 38 | import { applyZaiConfig, applyZaiProviderConfig, resolveZaiModelId } from "./onboard.js"; |
39 | 39 | |
40 | 40 | const PROVIDER_ID = "zai"; |
@@ -104,7 +104,8 @@ function resolveGlm5ForwardCompatModel(
|
104 | 104 | ...template, |
105 | 105 | id: def.id, |
106 | 106 | name: def.name, |
107 | | -baseUrl: ctx.providerConfig?.baseUrl ?? template?.baseUrl, |
| 107 | +// Native models must never fall through to the OpenAI SDK's default host. |
| 108 | +baseUrl: ctx.providerConfig?.baseUrl ?? template?.baseUrl ?? resolveZaiBaseUrl(), |
108 | 109 | api: "openai-completions", |
109 | 110 | provider: PROVIDER_ID, |
110 | 111 | reasoning: def.reasoning, |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。