63 lines
1.7 KiB
Python
63 lines
1.7 KiB
Python
"""
|
|
Pydantic schemas for Data Recipe (DataDesigner) API.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class RecipePayload(BaseModel):
|
|
recipe: dict[str, Any] = Field(default_factory=dict)
|
|
run: dict[str, Any] | None = None
|
|
ui: dict[str, Any] | None = None
|
|
|
|
|
|
class PreviewResponse(BaseModel):
|
|
dataset: list[dict[str, Any]] = Field(default_factory=list)
|
|
processor_artifacts: dict[str, Any] | None = None
|
|
analysis: dict[str, Any] | None = None
|
|
|
|
|
|
class ValidateError(BaseModel):
|
|
message: str
|
|
path: str | None = None
|
|
code: str | None = None
|
|
|
|
|
|
class ValidateResponse(BaseModel):
|
|
valid: bool
|
|
errors: list[ValidateError] = Field(default_factory=list)
|
|
raw_detail: str | None = None
|
|
|
|
|
|
class JobCreateResponse(BaseModel):
|
|
job_id: str
|
|
|
|
|
|
class SeedInspectRequest(BaseModel):
|
|
dataset_name: str = Field(min_length=1)
|
|
hf_token: str | None = None
|
|
subset: str | None = None
|
|
split: str | None = "train"
|
|
preview_size: int = Field(default=10, ge=1, le=50)
|
|
|
|
|
|
class SeedInspectUploadRequest(BaseModel):
|
|
filename: str = Field(min_length=1)
|
|
content_base64: str = Field(min_length=1)
|
|
preview_size: int = Field(default=10, ge=1, le=50)
|
|
seed_source_type: str | None = None
|
|
unstructured_chunk_size: int | None = Field(default=None, ge=1, le=20000)
|
|
unstructured_chunk_overlap: int | None = Field(default=None, ge=0, le=20000)
|
|
|
|
|
|
class SeedInspectResponse(BaseModel):
|
|
dataset_name: str
|
|
resolved_path: str
|
|
columns: list[str] = Field(default_factory=list)
|
|
preview_rows: list[dict[str, Any]] = Field(default_factory=list)
|
|
split: str | None = None
|
|
subset: str | None = None
|