Spaces:
Running
Running
| from __future__ import annotations | |
| from fastapi import APIRouter, Depends, Header, HTTPException, status | |
| from api.schemas import EvalRunRequest, EvalRunResponse | |
| router = APIRouter(prefix="/v1/eval", tags=["eval"]) | |
| def _verify_api_key(x_api_key: str | None = Header(default=None)) -> None: | |
| from api.main import get_api_config | |
| configured = get_api_config().api_key | |
| if configured and x_api_key != configured: | |
| raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid API key") | |
| def _get_eval_service(): | |
| from api.main import get_eval_service | |
| return get_eval_service() | |
| def run_eval( | |
| payload: EvalRunRequest, | |
| _: None = Depends(_verify_api_key), | |
| service=Depends(_get_eval_service), | |
| ) -> EvalRunResponse: | |
| assistants = payload.assistants or ["oss"] | |
| return service.run( | |
| benchmark_samples=payload.benchmark_samples, | |
| seed=payload.seed, | |
| assistants=assistants, | |
| ) | |