| """QA对数据集相关的Pydantic模型 - 通用设计""" |
|
|
| from datetime import datetime |
| from typing import Any, Dict, List, Optional |
|
|
| from pydantic import BaseModel, Field |
|
|
|
|
| class QAPair(BaseModel): |
| """问题-答案对模型""" |
|
|
| id: Optional[int] = Field(None, description="数据项ID(自增主键,创建时无需提供)") |
| dataset_id: int = Field(..., description="所属数据集ID") |
| question: str = Field(..., description="问题内容", min_length=1) |
| answer: str = Field(..., description="答案内容", min_length=1) |
|
|
| class Config: |
| """Pydantic配置""" |
|
|
| |
| extra = "allow" |
|
|
|
|
| class Dataset(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") |
|
|
| |
| annotator_id: Optional[int] = Field(None, description="标注者ID") |
| annotator_name: Optional[str] = Field(None, description="标注者名称") |
|
|
| |
| 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字段列表" |
| ) |
|
|
| |
| project_id: Optional[int] = Field(None, description="所属项目ID(可选)") |
|
|
| |
| created_at: Optional[datetime] = Field(None, description="创建时间") |
| updated_at: Optional[datetime] = Field(None, description="更新时间") |
|
|