| 1234567891011121314151617181920212223242526272829 |
- from pathlib import Path
- from typing import Any
- from fastapi import UploadFile
- from app.config import get_settings
- from app.core.logging import logger
- settings = get_settings()
- async def upload_dataset(file: UploadFile) -> dict[str, Any]:
- """保存上传文件并检测格式。"""
- upload_dir = settings.uploads_dir
- upload_dir.mkdir(parents=True, exist_ok=True)
- file_path = upload_dir / file.filename
- content = await file.read()
- file_path.write_bytes(content)
- fmt = _detect_format(file.filename or "")
- logger.info(f"Uploaded dataset: {file_path} (format={fmt})")
- return {"path": str(file_path), "format": fmt, "size": len(content)}
- def _detect_format(filename: str) -> str:
- ext = Path(filename).suffix.lower().lstrip(".")
- if ext in ("jsonl", "csv", "parquet", "json"):
- return ext
- return "unknown"
|