# UI.py import gradio as gr from interface import process_and_plot def create_interface(): # Definir los componentes de entrada inputs = [ gr.File(label="Sube tu archivo Excel"), # Ecuaciones de Biomasa gr.Textbox(label="Ecuación de Biomasa 1", value="xo*exp(um*t)"), gr.Textbox(label="Ecuación de Biomasa 2", value=""), gr.Textbox(label="Ecuación de Biomasa 3", value=""), # Parámetros de Biomasa gr.Textbox(label="Parámetros de Biomasa 1", value="xo, um"), gr.Textbox(label="Parámetros de Biomasa 2", value=""), gr.Textbox(label="Parámetros de Biomasa 3", value=""), # Límites de Biomasa gr.Textbox(label="Límites de Biomasa 1", value="[ (0, np.inf), (0, np.inf) ]"), gr.Textbox(label="Límites de Biomasa 2", value=""), gr.Textbox(label="Límites de Biomasa 3", value=""), # Ecuaciones de Sustrato gr.Textbox(label="Ecuación de Sustrato 1", value="so - k1*X(t)"), gr.Textbox(label="Ecuación de Sustrato 2", value=""), gr.Textbox(label="Ecuación de Sustrato 3", value=""), # Parámetros de Sustrato gr.Textbox(label="Parámetros de Sustrato 1", value="so, k1"), gr.Textbox(label="Parámetros de Sustrato 2", value=""), gr.Textbox(label="Parámetros de Sustrato 3", value=""), # Límites de Sustrato gr.Textbox(label="Límites de Sustrato 1", value="[ (0, np.inf), (0, np.inf) ]"), gr.Textbox(label="Límites de Sustrato 2", value=""), gr.Textbox(label="Límites de Sustrato 3", value=""), # Ecuaciones de Producto gr.Textbox(label="Ecuación de Producto 1", value="po + k2*X(t)"), gr.Textbox(label="Ecuación de Producto 2", value=""), gr.Textbox(label="Ecuación de Producto 3", value=""), # Parámetros de Producto gr.Textbox(label="Parámetros de Producto 1", value="po, k2"), gr.Textbox(label="Parámetros de Producto 2", value=""), gr.Textbox(label="Parámetros de Producto 3", value=""), # Límites de Producto gr.Textbox(label="Límites de Producto 1", value="[ (0, np.inf), (0, np.inf) ]"), gr.Textbox(label="Límites de Producto 2", value=""), gr.Textbox(label="Límites de Producto 3", value=""), # Opciones de visualización gr.Dropdown( choices=['best', 'upper right', 'upper left', 'lower right', 'lower left'], label="Posición de la Leyenda", value='best' ), gr.Checkbox(label="Mostrar Leyenda", value=True), gr.Checkbox(label="Mostrar Parámetros", value=True), # Contadores de ecuaciones gr.Number(label="Número de Ecuaciones de Biomasa", value=1, precision=0), gr.Number(label="Número de Ecuaciones de Sustrato", value=1, precision=0), gr.Number(label="Número de Ecuaciones de Producto", value=1, precision=0), ] # Definir los componentes de salida outputs = [ gr.Image(type="pil", label="Gráfica Resultante"), gr.Textbox(label="Análisis del Modelo"), ] # Crear la interfaz interface = gr.Interface( fn=process_and_plot, inputs=inputs, outputs=outputs, title="Modelo de Bioproceso", description="Sube un archivo Excel con tus datos experimentales para ajustar el modelo y visualizar los resultados.", ) return interface