56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
/**
|
|
* 批量数据集评估任务API
|
|
* 创建批量评估数据集质量的异步任务
|
|
*/
|
|
|
|
import { NextResponse } from 'next/server';
|
|
import { db } from '@/lib/db/index';
|
|
import { processTask } from '@/lib/services/tasks/index';
|
|
|
|
/**
|
|
* 创建批量数据集评估任务
|
|
*/
|
|
export async function POST(request, { params }) {
|
|
try {
|
|
const { projectId } = params;
|
|
const { model, language = 'zh-CN' } = await request.json();
|
|
|
|
if (!projectId) {
|
|
return NextResponse.json({ success: false, message: '项目ID不能为空' }, { status: 400 });
|
|
}
|
|
|
|
if (!model || !model.modelId) {
|
|
return NextResponse.json({ success: false, message: '模型配置不能为空' }, { status: 400 });
|
|
}
|
|
|
|
// 创建批量评估任务
|
|
const newTask = await db.task.create({
|
|
data: {
|
|
projectId,
|
|
taskType: 'dataset-evaluation',
|
|
status: 0, // 初始状态: 处理中
|
|
modelInfo: JSON.stringify(model),
|
|
language: language || 'zh-CN',
|
|
detail: '',
|
|
totalCount: 0,
|
|
note: '准备开始批量评估数据集质量...',
|
|
completedCount: 0
|
|
}
|
|
});
|
|
|
|
// 异步处理任务
|
|
processTask(newTask.id).catch(err => {
|
|
console.error(`批量评估任务启动失败: ${newTask.id}`, String(err));
|
|
});
|
|
|
|
return NextResponse.json({
|
|
success: true,
|
|
message: '批量评估任务已创建',
|
|
data: { taskId: newTask.id }
|
|
});
|
|
} catch (error) {
|
|
console.error('创建批量评估任务失败:', error);
|
|
return NextResponse.json({ success: false, message: `创建任务失败: ${error.message}` }, { status: 500 });
|
|
}
|
|
}
|