QALoop / qa_annotate /schema /seed_question.py
jackkuo's picture
Add Hugging Face Space deployment
35e7795
Raw
History Blame Contribute Delete
2.13 kB
"""种子问题相关的Pydantic模型"""
from datetime import datetime
from typing import Optional
from pydantic import BaseModel, ConfigDict, Field
class SeedQuestionBase(BaseModel):
"""种子问题基础模型"""
model_config = ConfigDict(from_attributes=True)
question: str = Field(..., description="种子问题文本", min_length=1)
type: str = Field(..., description="类型名称", min_length=1)
subtype: str = Field(..., description="亚类名称", min_length=1)
species_or_domain: str = Field(..., description="物种/领域", min_length=1)
model: str = Field(..., description="使用的模型名称", min_length=1)
date: datetime = Field(..., description="日期")
is_verified: bool = Field(..., description="是否人工核验")
class SeedQuestionCreate(SeedQuestionBase):
"""创建种子问题模型"""
pass
class SeedQuestionUpdate(BaseModel):
"""更新种子问题模型"""
model_config = ConfigDict(from_attributes=True)
question: Optional[str] = Field(
default=None, description="种子问题文本", min_length=1
)
type: Optional[str] = Field(default=None, description="类型名称", min_length=1)
subtype: Optional[str] = Field(default=None, description="亚类名称", min_length=1)
species_or_domain: Optional[str] = Field(default=None, description="物种/领域")
model: Optional[str] = Field(default=None, description="使用的模型名称")
date: Optional[datetime] = Field(default=None, description="日期")
is_verified: Optional[bool] = Field(default=None, description="是否人工核验")
class SeedQuestion(SeedQuestionBase):
"""种子问题模型"""
id: int = Field(..., description="种子问题ID")
creator_id: int = Field(..., description="创建者ID")
created_at: datetime = Field(..., description="创建时间")
updated_at: datetime = Field(..., description="更新时间")
class SeedQuestionWithCreator(SeedQuestion):
"""种子问题模型(包含创建者全名)"""
creator_full_name: Optional[str] = Field(None, description="创建者全名")