增加即梦的生图和生视频功能

This commit is contained in:
andy committed 2026-08-19 17:58:22 +08:00
1 parent a9a4cdf125
commit 542246e4ce
20 files changed
+1008 -53

No files matched your search

+32 -4
View File
@@ -27,7 +27,8 @@ export async function submitVisualTask(
config = getVisualClientConfig()
): Promise<VisualTaskSubmitResponse> {
if (!config) throw new Error("Volcengine Visual credentials are not configured.");
return callVisualApi<VisualTaskSubmitResponse>("CVSync2AsyncSubmitTask", payload, config);
const protocol = visualProtocolForPayload(payload);
return callVisualApi<VisualTaskSubmitResponse>(protocol.submitAction, protocol.version, payload, config);
}
export async function queryVisualTask(
@@ -35,11 +36,38 @@ export async function queryVisualTask(
config = getVisualClientConfig()
): Promise<VisualTaskQueryResponse> {
if (!config) throw new Error("Volcengine Visual credentials are not configured.");
return callVisualApi<VisualTaskQueryResponse>("CVSync2AsyncGetResult", payload, config);
const protocol = visualProtocolForPayload(payload);
return callVisualApi<VisualTaskQueryResponse>(protocol.queryAction, protocol.version, payload, config);
}
type VisualAction =
| "CVSync2AsyncSubmitTask"
| "CVSync2AsyncGetResult"
| "JimengSeedream46CVToBSubmitTask"
| "JimengSeedream46CVToBGetResult";
function visualProtocolForPayload(payload: Record<string, unknown>): {
submitAction: VisualAction;
queryAction: VisualAction;
version: string;
} {
if (String(payload.req_key || "").trim() === "jimeng_seedream46_cvtob") {
return {
submitAction: "JimengSeedream46CVToBSubmitTask",
queryAction: "JimengSeedream46CVToBGetResult",
version: "2024-06-06"
};
}
return {
submitAction: "CVSync2AsyncSubmitTask",
queryAction: "CVSync2AsyncGetResult",
version: "2022-08-31"
};
}
async function callVisualApi<T>(
action: "CVSync2AsyncSubmitTask" | "CVSync2AsyncGetResult",
action: VisualAction,
version: string,
payload: Record<string, unknown>,
config: VisualClientConfig
): Promise<T> {
@@ -49,7 +77,7 @@ async function callVisualApi<T>(
endpoint: config.endpoint,
query: {
Action: action,
Version: "2022-08-31"
Version: version
},
body,
accessKeyId: config.accessKeyId,