from fastapi import APIRouter, HTTPException from app.config import AVAILABLE_MODELS from app.schemas.sanitize import ModelInfo, SanitizeRequest, SanitizeResponse from app.services.sanitizer import sanitize_text router = APIRouter() @router.get("/models", response_model=list[ModelInfo]) async def list_models() -> list[ModelInfo]: return [ModelInfo(**m) for m in AVAILABLE_MODELS] @router.post("/sanitize", response_model=SanitizeResponse) async def sanitize(body: SanitizeRequest) -> SanitizeResponse: try: return sanitize_text(body.text, model_id=body.model_name) except RuntimeError as exc: raise HTTPException(status_code=503, detail=str(exc)) from exc except Exception as exc: raise HTTPException(status_code=500, detail="Model inference failed") from exc