# -*- coding: utf-8 -*- """Regression Use_model_cloud.ipynb Automatically generated by Colab. Original file is located at https://colab.research.google.com/drive/1hsRGZjDFbBm5WHW6gYOrHmx7IucW3BOc """ import os import requests import joblib import gradio as gr import numpy as np import matplotlib.pyplot as plt """# **Web/API deployment** ## **Load the Model** """ saved_model_path = "files/prueba_regression.joblib" os.path.getsize(saved_model_path) saved_model = joblib.load("files/prueba_regression.joblib") saved_model def predict(input1, input2): # Asume que el modelo espera un array 2D de características input_array = np.array([[input1, input2]]) predictions = saved_model.predict(input_array) output1 = predictions[0, 0] # Primer valor predicho output2 = predictions[0, 1] # Segundo valor predicho output3 = predictions[0, 2] # Tercer valor predicho output4 = predictions[0, 3] # Cuarto valor predicho output5 = predictions[0, 4] # Quinto valor predicho output6 = predictions[0, 5] # Sexto valor predicho return output1, output2, output3, output4, output5, output6 # Crear la interfaz de Gradio iface = gr.Interface( fn=predict, inputs=[gr.Number(label="RPM"), gr.Number(label="Horas de Operación")], outputs=[ gr.Number(label="Aceleración Lado del Acople"), gr.Number(label="Velocidad Lado del Acople"), gr.Number(label="Envolvente Lado del Acople"), gr.Number(label="Aceleración Lado del Impulsor"), gr.Number(label="Velocidad Lado del Impulsor"), gr.Number(label="Envolvente Lado del Impulsor") ], title="Predicción de Valores de Vibración", description="Ingrese los valores de RPM y Horas de Operación para predecir los valores de vibración." ) def predict(input1, input2): input_array = np.array([[input1, input2]]) predictions = saved_model.predict(input_array) # Configuración global para aumentar el tamaño de la fuente plt.rcParams.update({'font.size': 14}) # Crear la gráfica plt.figure(figsize=(16, 12)) labels = ['Ac Lado Acople', 'Vel Lado Acople', 'Env Lado Acople', 'Ac Lado Impulsor', 'Vel Lado Impulsor', 'Env Lado Impulsor'] plt.bar(labels, predictions[0], color='blue') plt.xticks(rotation=30, ha='right') plt.ylabel('Valores de Vibración') plt.title('Predicciones de Vibración para RPM y Horas de Operación') # Guardar la gráfica en un buffer en formato PNG y usarlo en Gradio plt.savefig('output_predictions.png') plt.close() return 'output_predictions.png' iface = gr.Interface( fn=predict, inputs=[gr.Number(label="RPM"), gr.Number(label="Horas de Operación")], outputs="image", title="Predicción de Valores de Vibración", description="Ingrese los valores de RPM y Horas de Operación para ver la gráfica de los valores de vibración predichos." ) # Lanzar la aplicación iface.launch()