diabetes / app.py
RaulHuaroteZegarra's picture
Update app.py
29c6739 verified
from sklearn import tree
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import numpy as np
from typing import List
#import pickle
class InputData(BaseModel):
data: List[float] # Lista de caracter铆sticas num茅ricas (flotantes)
app = FastAPI()
# Funci贸n para construir el modelo manualmente
def build_model():
from pickle import load
with open("clf_train.pkl", "rb") as f:
miarbol = load(f)
#with open("clf_train.pkl", "rb") as tf:
# miarbol = pickle.load(tf)
return miarbol
model = build_model() # Construir el modelo al iniciar la aplicaci贸n
# Ruta de predicci贸n
@app.post("/predict/")
async def predict(data: InputData):
print(f"Data: {data}")
global model
try:
# Convertir la lista de entrada a un array de NumPy para la predicci贸n
input_data = np.array(data.data).reshape(
1, -1
) # Asumiendo que la entrada debe ser de forma (1, num_features)
prediction = model.predict(input_data).round()
return {"prediction": prediction.tolist()}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))