# ai_mouse/server/routes_verify.py """Verification route: generate trajectories.""" from __future__ import annotations import logging from fastapi import APIRouter, HTTPException from pydantic import BaseModel from .deps import get_data_dir logger = logging.getLogger(__name__) router = APIRouter() # --------------------------------------------------------------------------- # Request models # --------------------------------------------------------------------------- class VerifyRequest(BaseModel): start: list[int] end: list[int] n_paths: int = 5 model_dir: str | None = None # --------------------------------------------------------------------------- # Routes # --------------------------------------------------------------------------- @router.post("/verify") def verify(req: VerifyRequest) -> dict: from ai_mouse.generator import generate n = max(1, min(req.n_paths, 12)) models_dir = get_data_dir() / "models_v2" model_dir_arg = req.model_dir if req.model_dir else str(models_dir) start = tuple(req.start) # type: ignore[arg-type] end = tuple(req.end) # type: ignore[arg-type] paths = [] try: for _ in range(n): pts = generate(start=start, end=end, model_dir=model_dir_arg) paths.append([[x, y, t] for x, y, t in pts]) except FileNotFoundError as exc: raise HTTPException(status_code=404, detail=str(exc)) from exc return {"paths": paths}