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)