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)