File size: 2,086 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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | """项目相关的Pydantic模型"""
from datetime import datetime
from typing import Any, Dict, List, Optional
from pydantic import BaseModel, Field
from qa_annotate.schema.annotation import AnnotationConfig
from qa_annotate.schema.dataset import Dataset
class Project(BaseModel):
"""项目模型"""
id: Optional[int] = Field(None, description="项目ID(自增主键,创建时无需提供)")
name: str = Field(..., description="项目名称")
description: Optional[str] = Field(None, description="项目描述")
# 版本和状态
version: Optional[str] = Field(None, description="项目版本号")
status: Optional[str] = Field(
"active", description="项目状态(active/inactive/archived)"
)
# 标签和分类
tags: Optional[List[str]] = Field(None, description="项目标签列表")
category: Optional[str] = Field(None, description="项目分类")
# 创建者信息
creator: Optional[str] = Field(None, description="创建者名称")
creator_id: Optional[int] = Field(None, description="创建者ID")
# 数据来源
source: Optional[str] = Field(None, description="数据来源")
source_url: Optional[str] = Field(None, description="数据来源URL")
# 元数据
metadata: Optional[Dict[str, Any]] = Field(
None, description="额外的元数据(JSON格式)"
)
# 要显示的extra字段配置(数据集可继承)
display_extra_fields: Optional[List[str]] = Field(
None, description="要显示的extra字段列表(数据集可继承)"
)
# 时间戳
created_at: Optional[datetime] = Field(None, description="创建时间")
updated_at: Optional[datetime] = Field(None, description="更新时间")
# 关联数据(可选,用于返回详细信息)
datasets: Optional[List[Dataset]] = Field(
None, description="项目下的数据集列表(可选)"
)
annotation_configs: Optional[List[AnnotationConfig]] = Field(
None, description="项目关联的标注配置列表(可选)"
)
|