From 8ffa131fad26ec39ff51faaf10a813d2155b240c Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Mon, 9 Feb 2026 23:23:05 +0800 Subject: [PATCH] =?UTF-8?q?feat(annotation):=20=E8=87=AA=E5=8A=A8=E6=A0=87?= =?UTF-8?q?=E6=B3=A8=E4=BB=BB=E5=8A=A1=E6=94=AF=E6=8C=81=E9=9D=9E=E5=9B=BE?= =?UTF-8?q?=E5=83=8F=E7=B1=BB=E5=9E=8B=E6=95=B0=E6=8D=AE=E9=9B=86=EF=BC=88?= =?UTF-8?q?TEXT/AUDIO/VIDEO=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除自动标注任务创建流程中的 IMAGE-only 限制,使 TEXT、AUDIO、VIDEO 类型数据集均可用于自动标注任务。 - 新增数据库迁移:t_dm_auto_annotation_tasks 表添加 dataset_type 列 - 后端 schema/API/service 全链路传递 dataset_type - Worker 动态构建 sample key(image/text/audio/video)和输出目录 - 前端移除数据集类型校验,下拉框显示数据集类型标识 - 输出数据集继承源数据集类型,不再硬编码为 IMAGE - 保持向后兼容:默认值为 IMAGE,worker 有元数据回退和目录 fallback Co-Authored-By: Claude Opus 4.6 --- .../OperatorCreate/CreateTask.tsx | 19 +- .../app/db/models/annotation_management.py | 174 +- .../app/module/annotation/interface/auto.py | 121 +- .../app/module/annotation/schema/auto.py | 92 +- .../app/module/annotation/service/auto.py | 156 +- .../datamate/auto_annotation_worker.py | 1656 +++++++++-------- .../data-annotation-multitype-migration.sql | 25 + 7 files changed, 1161 insertions(+), 1082 deletions(-) create mode 100644 scripts/db/data-annotation-multitype-migration.sql diff --git a/frontend/src/pages/DataAnnotation/OperatorCreate/CreateTask.tsx b/frontend/src/pages/DataAnnotation/OperatorCreate/CreateTask.tsx index 29c8cc6..420cf8e 100644 --- a/frontend/src/pages/DataAnnotation/OperatorCreate/CreateTask.tsx +++ b/frontend/src/pages/DataAnnotation/OperatorCreate/CreateTask.tsx @@ -6,7 +6,7 @@ import { ArrowLeft } from "lucide-react"; import { Link, useNavigate } from "react-router"; import { queryDatasetsUsingGet } from "@/pages/DataManagement/dataset.api"; import { mapDataset } from "@/pages/DataManagement/dataset.const"; -import { Dataset, DatasetType } from "@/pages/DataManagement/dataset.model"; +import { Dataset } from "@/pages/DataManagement/dataset.model"; import { createAnnotationOperatorTaskUsingPost } from "../annotation.api"; import { useCreateStepTwo } from "./hooks/useCreateStepTwo"; import PipelinePreview from "./components/PipelinePreview"; @@ -85,11 +85,6 @@ export default function AnnotationOperatorTaskCreate() { try { if (currentStep === 1) { await form.validateFields(); - - if (selectedDataset?.datasetType !== DatasetType.IMAGE) { - message.error("自动标注算子编排当前仅支持图片数据集"); - return; - } } setCurrentStep((prev) => Math.min(prev + 1, 2)); } catch { @@ -109,11 +104,6 @@ export default function AnnotationOperatorTaskCreate() { return; } - if (selectedDataset?.datasetType !== DatasetType.IMAGE) { - message.error("自动标注算子编排当前仅支持图片数据集"); - return; - } - const outputDatasetName = values.outputDatasetName?.trim(); const pipeline = selectedOperators.map((operator, index) => { const overrides = { @@ -200,10 +190,10 @@ export default function AnnotationOperatorTaskCreate() { label="选择数据集" name="datasetId" rules={[{ required: true, message: "请选择数据集" }]} - extra="自动标注算子编排当前仅支持图片数据集" + extra="请选择用于自动标注的数据集" >