You've already forked DataMate
feat(annotation): 添加标注类型显示功能
- 在前端页面中新增标注类型列并使用Tag组件展示 - 添加AnnotationTypeMap常量用于标注类型的映射 - 修改接口定义支持labelingType字段的传递 - 更新后端项目创建和更新逻辑以存储标注类型 - 添加标注类型配置键常量统一管理 - 扩展数据传输对象支持标注类型属性 - 实现模板标注类型的继承逻辑
This commit is contained in:
@@ -29,6 +29,7 @@ router = APIRouter(
|
||||
logger = get_logger(__name__)
|
||||
TEXT_DATASET_TYPE = "TEXT"
|
||||
SOURCE_DOCUMENT_FILE_TYPES = {"pdf", "doc", "docx", "xls", "xlsx"}
|
||||
LABELING_TYPE_CONFIG_KEY = "labeling_type"
|
||||
|
||||
@router.get("/{mapping_id}/login")
|
||||
async def login_label_studio(
|
||||
@@ -82,6 +83,7 @@ async def create_mapping(
|
||||
|
||||
# 如果提供了模板ID,获取模板配置
|
||||
label_config = None
|
||||
template_labeling_type = None
|
||||
if request.template_id:
|
||||
logger.info(f"Using template: {request.template_id}")
|
||||
template = await template_service.get_template(db, request.template_id)
|
||||
@@ -91,6 +93,7 @@ async def create_mapping(
|
||||
detail=f"Template not found: {request.template_id}"
|
||||
)
|
||||
label_config = template.label_config
|
||||
template_labeling_type = getattr(template, "labeling_type", None)
|
||||
logger.debug(f"Template label config loaded for template: {template.name}")
|
||||
|
||||
# 如果直接提供了 label_config (自定义或修改后的),则覆盖模板配置
|
||||
@@ -109,6 +112,8 @@ async def create_mapping(
|
||||
project_configuration["description"] = project_description
|
||||
if dataset_type == TEXT_DATASET_TYPE and request.segmentation_enabled is not None:
|
||||
project_configuration["segmentation_enabled"] = bool(request.segmentation_enabled)
|
||||
if template_labeling_type:
|
||||
project_configuration[LABELING_TYPE_CONFIG_KEY] = template_labeling_type
|
||||
|
||||
labeling_project = LabelingProject(
|
||||
id=str(uuid.uuid4()), # Generate UUID here
|
||||
@@ -441,6 +446,18 @@ async def update_mapping(
|
||||
|
||||
if request.template_id is not None:
|
||||
update_values["template_id"] = request.template_id
|
||||
template_labeling_type = None
|
||||
if request.template_id:
|
||||
template_service = AnnotationTemplateService()
|
||||
template = await template_service.get_template(db, request.template_id)
|
||||
if not template:
|
||||
raise HTTPException(
|
||||
status_code=404,
|
||||
detail=f"Template not found: {request.template_id}"
|
||||
)
|
||||
template_labeling_type = getattr(template, "labeling_type", None)
|
||||
if template_labeling_type:
|
||||
configuration[LABELING_TYPE_CONFIG_KEY] = template_labeling_type
|
||||
|
||||
if not update_values:
|
||||
# 没有要更新的字段,直接返回当前数据
|
||||
|
||||
Reference in New Issue
Block a user