|
|
"""Prediction API routes.""" |
|
|
|
|
|
from fastapi import APIRouter, Depends |
|
|
|
|
|
from app.api.controllers import PredictionController |
|
|
from app.api.models import ImageRequest, PredictionResponse |
|
|
from app.core.dependencies import get_inference_service |
|
|
from app.services.base import InferenceService |
|
|
|
|
|
router = APIRouter() |
|
|
|
|
|
|
|
|
@router.post("/predict", response_model=PredictionResponse) |
|
|
async def predict( |
|
|
request: ImageRequest, |
|
|
service: InferenceService = Depends(get_inference_service) |
|
|
): |
|
|
""" |
|
|
Run inference on base64-encoded image. |
|
|
|
|
|
Returns prediction, confidence, predicted label, model name, and media type. |
|
|
""" |
|
|
return await PredictionController.predict(request, service) |
|
|
|