| """项目相关的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格式)" |
| ) |
|
|
| |
| 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="项目关联的标注配置列表(可选)" |
| ) |
|
|