File size: 1,568 Bytes
35e7795 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | """任务相关的Pydantic模型"""
from typing import List, Optional
from pydantic import BaseModel, Field
class EvaluationDimension(BaseModel):
"""评估维度模型"""
name: str = Field(..., description="评估维度名称")
description: Optional[str] = Field(None, description="评估维度描述")
class TaskInfo(BaseModel):
"""任务信息模型"""
dataset_id: int = Field(..., description="数据集ID")
dataset_name: str = Field(..., description="数据集名称")
task_description: Optional[str] = Field(None, description="任务描述")
category: Optional[str] = Field(
None, description="数据集分类(用于匹配用户物种标签)"
)
target_annotation_count: int = Field(..., description="目标标注数量(计算得出)")
project_id: Optional[int] = Field(None, description="项目ID")
project_name: Optional[str] = Field(None, description="项目名称")
evaluation_purpose: Optional[str] = Field(
None, description="评估目的(从项目 metadata 获取)"
)
deadline: Optional[str] = Field(
None, description="要求完成时间(从项目 metadata 获取,ISO 8601 格式)"
)
evaluation_dimensions: List[EvaluationDimension] = Field(
default_factory=list,
description="评估维度列表(从项目 annotation_configs 获取)",
)
annotated_count: Optional[int] = Field(None, description="已标注数量")
progress_rate: Optional[float] = Field(None, description="标注进度百分比(0-100)")
|