Add dataset QA and custom YOLO training flow

This commit is contained in:
2026-06-30 14:04:11 +08:00
parent 43ed767b4f
commit 93af8bcd3a
14 changed files with 529 additions and 18 deletions

View File

@@ -16,12 +16,12 @@ from .coverage import get_coverage_report
from .jobs import cancel_job, create_job
from .modules.results.service import scan_results, scan_training_curves
from .modules.system.service import disk_usage, get_conda_envs, get_gpus
from .modules.dataset.service import create_dataset, list_uploaded_datasets, save_upload
from .modules.dataset.service import create_dataset, generate_yolo_dataset_yaml, list_uploaded_datasets, save_upload, validate_dataset
from .modules.weights.service import load_manifest, sync_weights, verify_weights
from .agents.evaluation_agent import evaluate_project
from .agents.validation_agent import validate_project
from .paths import ensure_inside
from .schemas import DatasetCreate, JobCreate, ProfileCreate, WeightSyncRequest
from .schemas import DatasetCreate, DatasetYoloYamlRequest, JobCreate, ProfileCreate, WeightSyncRequest
app = FastAPI(title="Seg Data Server Net", version="0.1.0")
@@ -109,6 +109,19 @@ async def api_upload_dataset_files(dataset_name: str, kind: str, files: list[Upl
raise HTTPException(status_code=400, detail=str(exc)) from exc
@app.get("/api/datasets/{dataset_name}/validate")
def api_validate_dataset(dataset_name: str) -> dict:
return validate_dataset(dataset_name)
@app.post("/api/datasets/{dataset_name}/yolo-yaml")
def api_generate_dataset_yolo_yaml(dataset_name: str, request: DatasetYoloYamlRequest) -> dict:
try:
return generate_yolo_dataset_yaml(dataset_name, request.class_names)
except Exception as exc:
raise HTTPException(status_code=400, detail=str(exc)) from exc
@app.get("/api/profiles")
def api_profiles(kind: str | None = None) -> list[dict]:
return db.list_profiles(kind)