mhamza-007's picture
Update main.py
3cdf752 verified
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)