mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-04 13:50:23 +00:00
refactor(providers): centralize request capabilities (#59636)
* refactor(providers): centralize request capabilities * fix(providers): harden comparable base url parsing
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { resolveProviderRequestCapabilities } from "openclaw/plugin-sdk/provider-http";
|
||||
import type {
|
||||
ModelDefinitionConfig,
|
||||
ModelProviderConfig,
|
||||
@@ -94,29 +95,14 @@ export const MODELSTUDIO_MODEL_CATALOG: ReadonlyArray<ModelDefinitionConfig> = [
|
||||
},
|
||||
];
|
||||
|
||||
function normalizeModelStudioBaseUrl(baseUrl: string | undefined): string {
|
||||
const trimmed = baseUrl?.trim();
|
||||
if (!trimmed) {
|
||||
return "";
|
||||
}
|
||||
try {
|
||||
const url = new URL(trimmed);
|
||||
url.hash = "";
|
||||
url.search = "";
|
||||
return url.toString().replace(/\/+$/, "").toLowerCase();
|
||||
} catch {
|
||||
return trimmed.replace(/\/+$/, "").toLowerCase();
|
||||
}
|
||||
}
|
||||
|
||||
export function isNativeModelStudioBaseUrl(baseUrl: string | undefined): boolean {
|
||||
const normalized = normalizeModelStudioBaseUrl(baseUrl);
|
||||
return (
|
||||
normalized === MODELSTUDIO_BASE_URL ||
|
||||
normalized === MODELSTUDIO_CN_BASE_URL ||
|
||||
normalized === MODELSTUDIO_STANDARD_CN_BASE_URL ||
|
||||
normalized === MODELSTUDIO_STANDARD_GLOBAL_BASE_URL
|
||||
);
|
||||
return resolveProviderRequestCapabilities({
|
||||
provider: "modelstudio",
|
||||
api: "openai-completions",
|
||||
baseUrl,
|
||||
capability: "llm",
|
||||
transport: "stream",
|
||||
}).supportsNativeStreamingUsageCompat;
|
||||
}
|
||||
|
||||
function withStreamingUsageCompat(provider: ModelProviderConfig): ModelProviderConfig {
|
||||
|
||||
Reference in New Issue
Block a user