39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import { jsonOk } from "@/lib/server/api";
|
|
import { getEffectiveImageEngine, getEvolinkImageSettings, shouldMockEvolinkApi } from "@/lib/evolink/image-client";
|
|
import { getVisibleImageCapabilities } from "@/lib/jimeng/capabilities";
|
|
import { shouldMockVisualApi } from "@/lib/volcengine/visual-client";
|
|
import { getSeedanceConfig, shouldMockSeedance } from "@/lib/seedance/client";
|
|
|
|
export const runtime = "nodejs";
|
|
|
|
export async function GET() {
|
|
const evolink = getEvolinkImageSettings();
|
|
return jsonOk({
|
|
ok: true,
|
|
appId: "zhinian-web-studio",
|
|
webOnly: true,
|
|
visualApiMode: shouldMockVisualApi() ? "mock" : "volcengine",
|
|
evolinkMode: shouldMockEvolinkApi() ? "mock" : "evolink",
|
|
seedanceMode: shouldMockSeedance() ? "mock" : "seedance",
|
|
capabilities: [
|
|
...getVisibleImageCapabilities().map((capability) => {
|
|
const engine = getEffectiveImageEngine(capability.id);
|
|
return {
|
|
id: capability.id,
|
|
label: capability.label,
|
|
engine,
|
|
engineLabel: engine === "evolink" ? "EvoLink" : "即梦",
|
|
reqKey: engine === "evolink" ? evolink.model : capability.reqKey
|
|
};
|
|
}),
|
|
{
|
|
id: "video.generate",
|
|
label: "Seedance 视频生成",
|
|
engine: "seedance",
|
|
engineLabel: "Seedance",
|
|
reqKey: getSeedanceConfig().model
|
|
}
|
|
]
|
|
});
|
|
}
|