Spaces:
Running
Running
| from fastapi import APIRouter, HTTPException | |
| from ..core.model_loader import get_classifier | |
| from ..core.schemas import PredictRequest, PredictResponse, ClassifyBatchRequest, ClassifyBatchResponse | |
| from ..services.classifier import classify_one, classify_many | |
| from ..utils import normalize | |
| router = APIRouter(tags=["inference"]) | |
| def classify(request: PredictRequest): | |
| if get_classifier() is None: | |
| raise HTTPException(status_code=503, detail="Model not available") | |
| return classify_one(normalize(request.text), request.text) | |
| def classify_batch(request: ClassifyBatchRequest): | |
| if get_classifier() is None: | |
| raise HTTPException(status_code=503, detail="Model not available") | |
| normalized = [normalize(t) for t in request.texts] | |
| results, from_cache = classify_many(normalized, request.texts) | |
| return ClassifyBatchResponse(results=results, total=len(results), from_cache=from_cache) | |