evaluation.py 804 B

12345678910111213141516171819202122
  1. from fastapi import APIRouter, HTTPException
  2. from app.schemas.evaluation import EvalConfig, EvalResult
  3. from app.services import eval_service
  4. router = APIRouter()
  5. @router.post("/run", response_model=EvalResult)
  6. async def run_evaluation(config: EvalConfig):
  7. """启动评估后台任务,立即返回 eval_id。"""
  8. result = await eval_service.run_evaluation(config.job_id, config.model_dump())
  9. return EvalResult(**result)
  10. @router.get("/{eval_id}/results", response_model=EvalResult)
  11. async def get_evaluation_results(eval_id: str):
  12. """获取评估结果或状态。"""
  13. result = await eval_service.get_evaluation_results(eval_id)
  14. if result.get("status") == "not_found":
  15. raise HTTPException(status_code=404, detail="Evaluation not found")
  16. return EvalResult(**result)