Spaces:
Running
Running
File size: 1,044 Bytes
f9ac587 84bb476 f9ac587 84bb476 f9ac587 84bb476 f9ac587 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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"])
@router.post("/classify", response_model=PredictResponse)
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)
@router.post("/classify/batch", response_model=ClassifyBatchResponse)
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)
|