mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 05:50:43 +00:00
refactor: share media provider capability check
This commit is contained in:
@@ -6,6 +6,7 @@ import {
|
||||
resolveBundledDefaultMediaModel,
|
||||
} from "./bundled-defaults.js";
|
||||
import { buildMediaUnderstandingRegistry, normalizeMediaProviderId } from "./provider-registry.js";
|
||||
import { providerSupportsCapability } from "./provider-supports.js";
|
||||
import type { MediaUnderstandingCapability, MediaUnderstandingProvider } from "./types.js";
|
||||
|
||||
const MB = 1024 * 1024;
|
||||
@@ -38,22 +39,6 @@ export const DEFAULT_VIDEO_MAX_BASE64_BYTES = 70 * MB;
|
||||
export const CLI_OUTPUT_MAX_BUFFER = 5 * MB;
|
||||
export const DEFAULT_MEDIA_CONCURRENCY = 2;
|
||||
|
||||
function providerSupportsCapability(
|
||||
provider: MediaUnderstandingProvider | undefined,
|
||||
capability: MediaUnderstandingCapability,
|
||||
): boolean {
|
||||
if (!provider) {
|
||||
return false;
|
||||
}
|
||||
if (capability === "audio") {
|
||||
return Boolean(provider.transcribeAudio);
|
||||
}
|
||||
if (capability === "image") {
|
||||
return Boolean(provider.describeImage);
|
||||
}
|
||||
return Boolean(provider.describeVideo);
|
||||
}
|
||||
|
||||
function resolveDefaultRegistry(cfg?: OpenClawConfig) {
|
||||
return buildMediaUnderstandingRegistry(undefined, cfg ?? ({} as OpenClawConfig));
|
||||
}
|
||||
|
||||
17
src/media-understanding/provider-supports.ts
Normal file
17
src/media-understanding/provider-supports.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import type { MediaUnderstandingCapability, MediaUnderstandingProvider } from "./types.js";
|
||||
|
||||
export function providerSupportsCapability(
|
||||
provider: MediaUnderstandingProvider | undefined,
|
||||
capability: MediaUnderstandingCapability,
|
||||
): boolean {
|
||||
if (!provider) {
|
||||
return false;
|
||||
}
|
||||
if (capability === "audio") {
|
||||
return Boolean(provider.transcribeAudio);
|
||||
}
|
||||
if (capability === "image") {
|
||||
return Boolean(provider.describeImage);
|
||||
}
|
||||
return Boolean(provider.describeVideo);
|
||||
}
|
||||
@@ -38,6 +38,7 @@ import {
|
||||
getMediaUnderstandingProvider,
|
||||
normalizeMediaProviderId,
|
||||
} from "./provider-registry.js";
|
||||
import { providerSupportsCapability } from "./provider-supports.js";
|
||||
import { resolveModelEntries, resolveScopeDecision } from "./resolve.js";
|
||||
import {
|
||||
buildModelDecision,
|
||||
@@ -63,22 +64,6 @@ export type RunCapabilityResult = {
|
||||
decision: MediaUnderstandingDecision;
|
||||
};
|
||||
|
||||
function providerSupportsCapability(
|
||||
provider: MediaUnderstandingProvider | undefined,
|
||||
capability: MediaUnderstandingCapability,
|
||||
): boolean {
|
||||
if (!provider) {
|
||||
return false;
|
||||
}
|
||||
if (capability === "audio") {
|
||||
return Boolean(provider.transcribeAudio);
|
||||
}
|
||||
if (capability === "image") {
|
||||
return Boolean(provider.describeImage);
|
||||
}
|
||||
return Boolean(provider.describeVideo);
|
||||
}
|
||||
|
||||
function resolveConfiguredKeyProviderOrder(params: {
|
||||
cfg: OpenClawConfig;
|
||||
providerRegistry: ProviderRegistry;
|
||||
|
||||
Reference in New Issue
Block a user