File size: 1,192 Bytes
b59e813 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
from typing import Optional
from fastapi import APIRouter
from fastapi import FastAPI
from schemas import ClassificationResult
from utils import load_image
from utils import load_model
# from pydantic import BaseModel
model = load_model()
app = FastAPI(
title="MosAl",
openapi_url="/openapi.json",
description="""Obtain classification predictions for mosquito image""",
version="0.1.0",
)
api_router = APIRouter()
@api_router.get("/", status_code=200)
async def root():
"""
Root Get
"""
return {"message": "Hello World!"}
@api_router.get("/classify/{image_name}", status_code=200, response_model=ClassificationResult)
async def predict_image(image_name, model=model):
img = load_image(image_name)
prediction, pred_idx, probs = model.predict(img)
if prediction:
return {"prediction": prediction,
"score": round(probs.numpy()[pred_idx], 3),
}
else:
return {"message": [0]}
app.include_router(api_router)
if __name__ == "__main__":
# Use this for debugging purposes only 0.0.0.0 localhost 8001
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=7860, log_level="debug")
|