mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 05:10:44 +00:00
52 lines
1.7 KiB
TypeScript
52 lines
1.7 KiB
TypeScript
import {
|
|
applyProviderConfigWithModelCatalogPreset,
|
|
type OpenClawConfig,
|
|
} from "openclaw/plugin-sdk/provider-onboard";
|
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
|
|
import {
|
|
buildZaiCatalogModels,
|
|
resolveZaiBaseUrl,
|
|
ZAI_DEFAULT_MODEL_ID,
|
|
} from "./model-definitions.js";
|
|
|
|
export const ZAI_DEFAULT_MODEL_REF = `zai/${ZAI_DEFAULT_MODEL_ID}`;
|
|
|
|
function resolveZaiPresetBaseUrl(cfg: OpenClawConfig, endpoint?: string): string {
|
|
const existingProvider = cfg.models?.providers?.zai;
|
|
const existingBaseUrl = normalizeOptionalString(existingProvider?.baseUrl) ?? "";
|
|
return endpoint ? resolveZaiBaseUrl(endpoint) : existingBaseUrl || resolveZaiBaseUrl();
|
|
}
|
|
|
|
function applyZaiPreset(
|
|
cfg: OpenClawConfig,
|
|
params?: { endpoint?: string; modelId?: string },
|
|
primaryModelRef?: string,
|
|
): OpenClawConfig {
|
|
const modelId = normalizeOptionalString(params?.modelId) ?? ZAI_DEFAULT_MODEL_ID;
|
|
const modelRef = `zai/${modelId}`;
|
|
return applyProviderConfigWithModelCatalogPreset(cfg, {
|
|
providerId: "zai",
|
|
api: "openai-completions",
|
|
baseUrl: resolveZaiPresetBaseUrl(cfg, params?.endpoint),
|
|
catalogModels: buildZaiCatalogModels(),
|
|
aliases: [{ modelRef, alias: "GLM" }],
|
|
primaryModelRef,
|
|
});
|
|
}
|
|
|
|
export function applyZaiProviderConfig(
|
|
cfg: OpenClawConfig,
|
|
params?: { endpoint?: string; modelId?: string },
|
|
): OpenClawConfig {
|
|
return applyZaiPreset(cfg, params);
|
|
}
|
|
|
|
export function applyZaiConfig(
|
|
cfg: OpenClawConfig,
|
|
params?: { endpoint?: string; modelId?: string },
|
|
): OpenClawConfig {
|
|
const modelId = normalizeOptionalString(params?.modelId) ?? ZAI_DEFAULT_MODEL_ID;
|
|
const modelRef = modelId === ZAI_DEFAULT_MODEL_ID ? ZAI_DEFAULT_MODEL_REF : `zai/${modelId}`;
|
|
return applyZaiPreset(cfg, params, modelRef);
|
|
}
|