fastapi-space / main.py
RubenVierstraete's picture
code aangepast om met lokaal model te werken
518bb53
Raw
History Blame Contribute Delete
976 Bytes
from fastapi import FastAPI, File, UploadFile
from fastapi.responses import JSONResponse
import tensorflow as tf
import numpy as np
from PIL import Image
import io
import os
app = FastAPI(title="Animal Classifier")
# 1) Laad model lokaal vanuit model/
MODEL_PATH = os.path.join(os.path.dirname(__file__), "model")
model = tf.keras.models.load_model(MODEL_PATH)
CLASS_NAMES = ["cat", "dog", "panda"]
# 2) Predict functie
def predict_image(image: Image.Image):
image = image.convert("RGB")
resized_image = tf.image.resize(np.array(image), (64, 64))
images_to_predict = np.expand_dims(np.array(resized_image), axis=0)
probs = model.predict(images_to_predict)[0]
return {c: float(p) for c, p in zip(CLASS_NAMES, probs)}
# 3) FastAPI endpoint
@app.post("/predict")
async def predict(file: UploadFile = File(...)):
contents = await file.read()
image = Image.open(io.BytesIO(contents))
result = predict_image(image)
return JSONResponse(result)