Spaces:
Running
Running
File size: 1,008 Bytes
7b4b748 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 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()
@router.post("/run", response_model=EvalRunResponse)
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,
)
|