QALoop / qa_annotate /schema /project.py
jackkuo's picture
Add Hugging Face Space deployment
35e7795
Raw
History Blame Contribute Delete
2.09 kB
"""项目相关的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="项目关联的标注配置列表(可选)"
)