25 lines
865 B
TypeScript
25 lines
865 B
TypeScript
import { NextResponse } from "next/server";
|
|
import { auth } from "@/app/(auth)/auth";
|
|
import { listCanvasAudioModels } from "@/lib/video-canvas/audio-generation";
|
|
import { audioContract } from "@/lib/video-canvas/audio-contract";
|
|
export async function GET() {
|
|
const session = await auth();
|
|
if (!session?.user?.id) return NextResponse.json({ error: "未登录" }, { status: 401 });
|
|
try {
|
|
const models = await listCanvasAudioModels();
|
|
return NextResponse.json(
|
|
{
|
|
models: models.map(({ model }) => ({
|
|
id: model.id,
|
|
modelId: model.modelId,
|
|
name: model.displayName,
|
|
...audioContract(model.modelId),
|
|
})),
|
|
},
|
|
{ headers: { "Cache-Control": "no-store" } },
|
|
);
|
|
} catch {
|
|
return NextResponse.json({ error: "音频模型读取失败,请稍后重试" }, { status: 503 });
|
|
}
|
|
}
|