"""Eval endpoints.""" from fastapi import APIRouter, Depends, HTTPException, status from ai_evals.api.schemas.eval import EvalRequest, JobAccepted, JobResult, JobStatus from ai_evals.auth import verify_api_key from ai_evals.services import jobs router = APIRouter(tags=["eval"], dependencies=[Depends(verify_api_key)]) @router.post( "/run-eval", operation_id="run_eval", response_model=JobAccepted, status_code=status.HTTP_202_ACCEPTED, ) async def run_eval_endpoint(request: EvalRequest) -> JobAccepted: job_id = await jobs.start_job(request) return JobAccepted(job_id=job_id, status=JobStatus.PENDING) @router.get( "/run-eval/{job_id}", operation_id="get_eval_job", response_model=JobResult, ) async def get_eval_job_endpoint(job_id: str) -> JobResult: result = jobs.get_job(job_id) if result is None: raise HTTPException(status_code=404, detail="Job not found") return result