Spaces:
Sleeping
Sleeping
File size: 1,234 Bytes
4013eed | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import json
from fastapi import APIRouter, Depends, Query
from sqlalchemy.orm import Session
from backend.app.db import get_db
from backend.app.repositories.experiment_repo import get_experiments_by_ids, list_experiments
router = APIRouter(tags=["compare"])
@router.get("/compare")
def compare_experiments(experiment_ids: str | None = Query(default=None), db: Session = Depends(get_db)):
if experiment_ids:
ids = [x.strip() for x in experiment_ids.split(",") if x.strip()]
experiments = get_experiments_by_ids(db, ids)
else:
experiments = list_experiments(db)
return {
"experiments": [
{
"experiment_id": exp.id,
"dataset_id": exp.dataset_id,
"algorithm": exp.algorithm,
"status": exp.status,
"config": json.loads(exp.config_json) if exp.config_json else {},
"metrics": json.loads(exp.metrics_json) if exp.metrics_json else {},
"summary": json.loads(exp.summary_json) if exp.summary_json else {},
"runtime_ms": exp.runtime_ms,
"error_message": exp.error_message,
}
for exp in experiments
]
}
|