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)")