mosal-api / main.py
iloncka's picture
Update main.py
1c58ee8
raw
history blame
No virus
1.19 kB
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", 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")