mirror of https://github.com/openclaw/openclaw.git
refactor(providers): share xai compat helper
This commit is contained in:
parent
6d33c67c01
commit
7df763b04d
|
|
@ -1,7 +1,5 @@
|
|||
import { defineSingleProviderPluginEntry } from "openclaw/plugin-sdk/provider-entry";
|
||||
import { applyModelCompatPatch } from "openclaw/plugin-sdk/provider-model-shared";
|
||||
import type { ModelCompatConfig } from "openclaw/plugin-sdk/provider-model-shared";
|
||||
import { resolveXaiModelCompatPatch } from "openclaw/plugin-sdk/provider-tools";
|
||||
import { applyXaiModelCompat } from "openclaw/plugin-sdk/provider-tools";
|
||||
import { applyVeniceConfig, VENICE_DEFAULT_MODEL_REF } from "./onboard.js";
|
||||
import { buildVeniceProvider } from "./provider-catalog.js";
|
||||
|
||||
|
|
@ -11,13 +9,6 @@ function isXaiBackedVeniceModel(modelId: string): boolean {
|
|||
return modelId.trim().toLowerCase().includes("grok");
|
||||
}
|
||||
|
||||
function applyXaiCompat<T extends { compat?: unknown }>(model: T): T {
|
||||
return applyModelCompatPatch(
|
||||
model as T & { compat?: ModelCompatConfig },
|
||||
resolveXaiModelCompatPatch(),
|
||||
) as T;
|
||||
}
|
||||
|
||||
export default defineSingleProviderPluginEntry({
|
||||
id: PROVIDER_ID,
|
||||
name: "Venice Provider",
|
||||
|
|
@ -51,6 +42,6 @@ export default defineSingleProviderPluginEntry({
|
|||
buildProvider: buildVeniceProvider,
|
||||
},
|
||||
normalizeResolvedModel: ({ modelId, model }) =>
|
||||
isXaiBackedVeniceModel(modelId) ? applyXaiCompat(model) : undefined,
|
||||
isXaiBackedVeniceModel(modelId) ? applyXaiModelCompat(model) : undefined,
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
import {
|
||||
applyModelCompatPatch,
|
||||
getModelProviderHint,
|
||||
normalizeNativeXaiModelId,
|
||||
normalizeProviderId,
|
||||
resolveProviderEndpoint,
|
||||
} from "openclaw/plugin-sdk/provider-model-shared";
|
||||
import type { ModelCompatConfig } from "openclaw/plugin-sdk/provider-model-shared";
|
||||
import { resolveXaiModelCompatPatch } from "openclaw/plugin-sdk/provider-tools";
|
||||
import {
|
||||
applyXaiModelCompat,
|
||||
resolveXaiModelCompatPatch,
|
||||
} from "openclaw/plugin-sdk/provider-tools";
|
||||
|
||||
export { buildXaiProvider } from "./provider-catalog.js";
|
||||
export { applyXaiConfig, applyXaiProviderConfig } from "./onboard.js";
|
||||
|
|
@ -22,18 +23,12 @@ export {
|
|||
} from "./model-definitions.js";
|
||||
export { isModernXaiModel, resolveXaiForwardCompatModel } from "./provider-models.js";
|
||||
export {
|
||||
applyXaiModelCompat,
|
||||
HTML_ENTITY_TOOL_CALL_ARGUMENTS_ENCODING,
|
||||
XAI_TOOL_SCHEMA_PROFILE,
|
||||
resolveXaiModelCompatPatch,
|
||||
} from "openclaw/plugin-sdk/provider-tools";
|
||||
|
||||
export function applyXaiModelCompat<T extends { compat?: unknown }>(model: T): T {
|
||||
return applyModelCompatPatch(
|
||||
model as T & { compat?: ModelCompatConfig },
|
||||
resolveXaiModelCompatPatch(),
|
||||
) as T;
|
||||
}
|
||||
|
||||
function isXaiNativeEndpoint(baseUrl: unknown): boolean {
|
||||
return (
|
||||
typeof baseUrl === "string" && resolveProviderEndpoint(baseUrl).endpointClass === "xai-native"
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import {
|
|||
GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS,
|
||||
} from "../agents/schema/clean-for-gemini.js";
|
||||
import type { ModelCompatConfig } from "../config/types.models.js";
|
||||
import { applyModelCompatPatch } from "../plugins/provider-model-compat.js";
|
||||
import type {
|
||||
AnyAgentTool,
|
||||
ProviderNormalizeToolSchemasContext,
|
||||
|
|
@ -79,6 +80,13 @@ export function resolveXaiModelCompatPatch(): ModelCompatConfig {
|
|||
};
|
||||
}
|
||||
|
||||
export function applyXaiModelCompat<T extends { compat?: unknown }>(model: T): T {
|
||||
return applyModelCompatPatch(
|
||||
model as T & { compat?: ModelCompatConfig },
|
||||
resolveXaiModelCompatPatch(),
|
||||
) as T;
|
||||
}
|
||||
|
||||
export function findUnsupportedSchemaKeywords(
|
||||
schema: unknown,
|
||||
path: string,
|
||||
|
|
|
|||
Loading…
Reference in New Issue