mhamza-007's picture
Update main.py
3cdf752 verified
Raw
History Blame Contribute Delete
1.14 kB
from fastapi import FastAPI, File, UploadFile
from fastapi.responses import JSONResponse
from fastapi.middleware.cors import CORSMiddleware
import io
from PIL import Image
from preprocessing.image_preprocessing import prep_image
from model_predictor import prediction
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
print("Server is running...")
@app.get("/")
async def root():
return JSONResponse(
content={"message": "Welcome to the Food Classification API πŸ•πŸ”πŸ₯—! The server is up and running πŸš€."}
)
@app.post("/predict")
async def predict(file: UploadFile = File(...)):
try:
image = Image.open(io.BytesIO(await file.read()))
processed_img = prep_image(image)
predictions = prediction(processed_img)
return JSONResponse(content={"predictions": predictions})
except Exception as e:
return JSONResponse(content={"error": str(e)}, status_code=500)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=7860)