Spaces:
Sleeping
Sleeping
| 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() | |
| def root(): | |
| return {"mensaje": "API de predicci贸n de 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)}"} | |