42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
import { NextResponse } from 'next/server';
|
|
import { getImageByName } from '@/lib/db/images';
|
|
import imageService from '@/lib/services/images';
|
|
|
|
// 生成图像数据集
|
|
export async function POST(request, { params }) {
|
|
try {
|
|
const { projectId } = params;
|
|
const { imageName, question, model, language = 'zh', previewOnly = false } = await request.json();
|
|
|
|
if (!imageName || !question) {
|
|
return NextResponse.json({ error: '缺少必要参数' }, { status: 400 });
|
|
}
|
|
|
|
if (!model) {
|
|
return NextResponse.json({ error: '请选择一个视觉模型' }, { status: 400 });
|
|
}
|
|
|
|
// 获取图片信息
|
|
const image = await getImageByName(projectId, imageName);
|
|
if (!image) {
|
|
return NextResponse.json({ error: '图片不存在' }, { status: 404 });
|
|
}
|
|
|
|
// 调用图片数据集生成服务
|
|
const result = await imageService.generateDatasetForImage(projectId, image.id, question, {
|
|
model,
|
|
language,
|
|
previewOnly
|
|
});
|
|
|
|
return NextResponse.json({
|
|
success: true,
|
|
answer: result.answer,
|
|
dataset: result.dataset
|
|
});
|
|
} catch (error) {
|
|
console.error('Failed to generate image dataset:', error);
|
|
return NextResponse.json({ error: error.message || 'Failed to generate dataset' }, { status: 500 });
|
|
}
|
|
}
|