iloncka/mosal-api
0
1from typing import Optional2 3from fastapi import APIRouter4from fastapi import FastAPI5from schemas import ClassificationResult6from utils import load_image7from utils import load_model8 9 10# from pydantic import BaseModel11 12model = load_model()13 14app = FastAPI(15 title="MosAl",16 openapi_url="/openapi.json",17 description="""Obtain classification predictions for mosquito image""",18 version="0.1.0",19)20 21api_router = APIRouter()22 23 24# @api_router.get("/", status_code=200)25# async def root():26# """27# Root Get28# """29# return {"message": "Hello World!"}30 31 32@api_router.get("/classify", status_code=200, response_model=ClassificationResult)33async def predict_image(image_name, model=model):34 img = load_image(image_name)35 prediction, pred_idx, probs = model.predict(img)36 if prediction:37 return {"prediction": prediction,38 "score": round(probs.numpy()[pred_idx], 3),39 }40 else:41 return {"message": [0]}42 43 44 45app.include_router(api_router)46 47if __name__ == "__main__":48 # Use this for debugging purposes only 0.0.0.0 localhost 800149 import uvicorn50 51 uvicorn.run(app, host="0.0.0.0", port=7860, log_level="debug")52 