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