datasets.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from fastapi import APIRouter, UploadFile, File, Query
  2. from app.schemas.dataset import (
  3. DatasetPreviewResponse,
  4. DatasetUploadResponse,
  5. DatasetValidationResult,
  6. )
  7. router = APIRouter()
  8. @router.post("/upload", response_model=DatasetUploadResponse)
  9. async def upload_dataset(file: UploadFile = File(...)):
  10. """上传数据集文件(JSONL / CSV / Parquet / JSON)。"""
  11. return DatasetUploadResponse(
  12. id="placeholder",
  13. name=file.filename or "unknown",
  14. format="jsonl",
  15. record_count=0,
  16. file_path="",
  17. created_at="",
  18. )
  19. @router.get("/{dataset_id}/preview", response_model=DatasetPreviewResponse)
  20. async def preview_dataset(dataset_id: str, rows: int = Query(default=10, le=100)):
  21. """预览数据集前 N 行。"""
  22. return DatasetPreviewResponse(total_records=0, preview_rows=[], columns=[])
  23. @router.post("/{dataset_id}/validate", response_model=DatasetValidationResult)
  24. async def validate_dataset(dataset_id: str):
  25. """校验数据集格式和 Schema。"""
  26. return DatasetValidationResult(is_valid=True)
  27. @router.get("/", response_model=list[DatasetUploadResponse])
  28. async def list_datasets():
  29. """列出所有已上传数据集。"""
  30. return []
  31. @router.delete("/{dataset_id}")
  32. async def delete_dataset(dataset_id: str):
  33. """删除数据集。"""
  34. return {"status": "deleted"}