api-probabilidad / app_probabilidad.py
Francogv's picture
Upload 5 files
80e55dc verified
from fastapi import FastAPI, Query
import joblib
import pandas as pd
# Cargar modelo y datos
modelo_probabilidad = joblib.load("modelo_probabilidad_paro.pkl")
features_probabilidad = joblib.load("features_modelo_paro.pkl")
df_probabilidad = joblib.load("df_codificado_paro.pkl")
app = FastAPI()
@app.get("/")
def root():
return {"mensaje": "API de predicci贸n de probabilidad"}
@app.get("/probabilidad")
def probabilidad(maquina: str = Query(..., description="Nombre de la m谩quina")):
if maquina not in df_probabilidad["Maquina"].unique():
return {"error": f"M谩quina '{maquina}' no encontrada en datos de probabilidad."}
try:
maquina_encoded = df_probabilidad[df_probabilidad["Maquina"] == maquina]["Maquina_encoded"].iloc[0]
df_maquina = df_probabilidad[df_probabilidad["Maquina"] == maquina]
fila_test = df_maquina[features_probabilidad].mean().to_frame().T
fila_test["Maquina_encoded"] = maquina_encoded
probas = modelo_probabilidad.predict_proba(fila_test)[0]
prob_marcha = probas[1]
prob_paro = probas[0]
return {
"tipo": "probabilidad",
"maquina": maquina,
"probabilidad_paro": round(prob_paro * 100, 2),
"probabilidad_marcha": round(prob_marcha * 100, 2)
}
except Exception as e:
return {"error": f"Error en predicci贸n de probabilidad: {str(e)}"}