Files
YG-Datasets/backend/app/schemas/eval.py

61 lines
1.5 KiB
Python
Raw Normal View History

"""
Evaluation Dataset Schemas
"""
from datetime import datetime
from typing import Optional, Any
from uuid import UUID
from pydantic import BaseModel, ConfigDict, Field
class EvalDatasetBase(BaseModel):
"""Base eval dataset schema"""
name: str = Field(..., min_length=1, max_length=255)
question_type: Optional[str] = Field("mixed", max_length=50)
extra_data: Optional[dict] = None
class EvalDatasetCreate(EvalDatasetBase):
"""Eval dataset create schema"""
pass
class EvalDatasetUpdate(BaseModel):
"""Eval dataset update schema"""
name: Optional[str] = Field(None, min_length=1, max_length=255)
question_type: Optional[str] = Field(None, max_length=50)
extra_data: Optional[dict] = None
class EvalDatasetResponse(EvalDatasetBase):
"""Eval dataset response schema"""
model_config = ConfigDict(from_attributes=True)
id: UUID
project_id: UUID
created_at: datetime
updated_at: datetime
class TaskBase(BaseModel):
"""Base task schema"""
task_type: str = Field(..., max_length=50)
status: Optional[str] = "pending"
progress: Optional[int] = Field(0, ge=0, le=100)
result: Optional[Any] = None
error: Optional[str] = None
class TaskResponse(TaskBase):
"""Task response schema"""
model_config = ConfigDict(from_attributes=True)
id: UUID
project_id: Optional[UUID]
created_at: datetime
updated_at: datetime
# Alias for CRUD
EvalDatasetCreateSchema = EvalDatasetCreate
EvalDatasetUpdateSchema = EvalDatasetUpdate