oclaw/openclaw/extensions/qianfan/onboard.ts
oliver dbbe3add6a 重构主控编排与运行时预热链路,统一工作区提示词/专家调度协议并补齐 wiki 记忆注入与写回闭环。
同时收敛启动与运维脚本默认行为(含 wiki worker)、更新 Admin 可观测性与相关测试,降低首轮时延并提高运行稳定性。

Made-with: Cursor
2026-04-26 08:34:33 +08:00

61 lines
1.8 KiB
TypeScript

import {
createDefaultModelsPresetAppliers,
type ModelApi,
type OpenClawConfig,
} from "openclaw/plugin-sdk/provider-onboard";
import {
buildQianfanProvider,
QIANFAN_BASE_URL,
QIANFAN_DEFAULT_MODEL_ID,
} from "./provider-catalog.js";
export const QIANFAN_DEFAULT_MODEL_REF = `qianfan/${QIANFAN_DEFAULT_MODEL_ID}`;
function resolveQianfanPreset(cfg: OpenClawConfig): {
api: ModelApi;
baseUrl: string;
defaultModels: NonNullable<ReturnType<typeof buildQianfanProvider>["models"]>;
} {
const defaultProvider = buildQianfanProvider();
const existingProvider = cfg.models?.providers?.qianfan as
| {
baseUrl?: unknown;
api?: unknown;
}
| undefined;
const existingBaseUrl =
typeof existingProvider?.baseUrl === "string" ? existingProvider.baseUrl.trim() : "";
const api =
typeof existingProvider?.api === "string"
? (existingProvider.api as ModelApi)
: "openai-completions";
return {
api,
baseUrl: existingBaseUrl || QIANFAN_BASE_URL,
defaultModels: defaultProvider.models ?? [],
};
}
const qianfanPresetAppliers = createDefaultModelsPresetAppliers({
primaryModelRef: QIANFAN_DEFAULT_MODEL_REF,
resolveParams: (cfg: OpenClawConfig) => {
const preset = resolveQianfanPreset(cfg);
return {
providerId: "qianfan",
api: preset.api,
baseUrl: preset.baseUrl,
defaultModels: preset.defaultModels,
defaultModelId: QIANFAN_DEFAULT_MODEL_ID,
aliases: [{ modelRef: QIANFAN_DEFAULT_MODEL_REF, alias: "QIANFAN" }],
};
},
});
export function applyQianfanProviderConfig(cfg: OpenClawConfig): OpenClawConfig {
return qianfanPresetAppliers.applyProviderConfig(cfg);
}
export function applyQianfanConfig(cfg: OpenClawConfig): OpenClawConfig {
return qianfanPresetAppliers.applyConfig(cfg);
}