DeimosJS3/Final
0
1from fastapi import FastAPI, File, UploadFile2from fastapi.responses import JSONResponse3import numpy as np4from PIL import Image5import io6 7from tensorflow.keras.models import load_model8 9app = FastAPI()10 11# Cargar el modelo al iniciar (solo 1 vez)12model = load_model("modelo_cirrosis.h5")13 14# Definir las clases en el mismo orden del entrenamiento15class_names = ["sano", "cirrosis"]16 17@app.post("/predict")18async def predict(file: UploadFile = File(...)):19 # Leer la imagen enviada por POST20 contents = await file.read()21 image = Image.open(io.BytesIO(contents)).convert("RGB")22 image = image.resize((150, 150)) # O el tamaño de tu modelo23 img_array = np.array(image) / 255.024 img_array = np.expand_dims(img_array, 0)25 26 # Predicción27 prediction = model.predict(img_array)28 pred_index = np.argmax(prediction)29 result = {30 "class": class_names[pred_index],31 "confidence": float(np.max(prediction))32 }33 return JSONResponse(result)34 