JuanMontesinos's picture
Upload 4 files
52f2033 verified
raw
history blame
No virus
1.18 kB
from sklearn import tree
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import numpy as np
from typing import List
from joblib import load
class InputData(BaseModel):
data: List[float] # Lista de caracter铆sticas num茅ricas (flotantes)
app = FastAPI()
# Funci贸n para construir el modelo manualmente
def build_decision_tree():
# Crear el modelo de 谩rbol de decisi贸n
model = tree.DecisionTreeClassifier(criterion="entropy", max_depth=10)
model = load(
"miarbol.pkl"
)
return model
# Construir el modelo al iniciar la aplicaci贸n
model = build_decision_tree()
# 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))