Spaces:
Sleeping
Sleeping
| 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...") | |
| async def root(): | |
| return JSONResponse( | |
| content={"message": "Welcome to the Food Classification API πππ₯! The server is up and running π."} | |
| ) | |
| 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) | |