# UI.py import gradio as gr from interface import process_and_plot def create_interface(): # Definir los componentes de entrada inputs = [ gr.inputs.File(label="Sube tu archivo Excel"), # Ecuaciones de Biomasa gr.inputs.Textbox(label="Ecuación de Biomasa 1", default="xo*exp(um*t)"), gr.inputs.Textbox(label="Ecuación de Biomasa 2", default=""), gr.inputs.Textbox(label="Ecuación de Biomasa 3", default=""), # Parámetros de Biomasa gr.inputs.Textbox(label="Parámetros de Biomasa 1", default="xo, um"), gr.inputs.Textbox(label="Parámetros de Biomasa 2", default=""), gr.inputs.Textbox(label="Parámetros de Biomasa 3", default=""), # Límites de Biomasa gr.inputs.Textbox(label="Límites de Biomasa 1", default="[ (0, np.inf), (0, np.inf) ]"), gr.inputs.Textbox(label="Límites de Biomasa 2", default=""), gr.inputs.Textbox(label="Límites de Biomasa 3", default=""), # Ecuaciones de Sustrato gr.inputs.Textbox(label="Ecuación de Sustrato 1", default="so - k1*X(t)"), gr.inputs.Textbox(label="Ecuación de Sustrato 2", default=""), gr.inputs.Textbox(label="Ecuación de Sustrato 3", default=""), # Parámetros de Sustrato gr.inputs.Textbox(label="Parámetros de Sustrato 1", default="so, k1"), gr.inputs.Textbox(label="Parámetros de Sustrato 2", default=""), gr.inputs.Textbox(label="Parámetros de Sustrato 3", default=""), # Límites de Sustrato gr.inputs.Textbox(label="Límites de Sustrato 1", default="[ (0, np.inf), (0, np.inf) ]"), gr.inputs.Textbox(label="Límites de Sustrato 2", default=""), gr.inputs.Textbox(label="Límites de Sustrato 3", default=""), # Ecuaciones de Producto gr.inputs.Textbox(label="Ecuación de Producto 1", default="po + k2*X(t)"), gr.inputs.Textbox(label="Ecuación de Producto 2", default=""), gr.inputs.Textbox(label="Ecuación de Producto 3", default=""), # Parámetros de Producto gr.inputs.Textbox(label="Parámetros de Producto 1", default="po, k2"), gr.inputs.Textbox(label="Parámetros de Producto 2", default=""), gr.inputs.Textbox(label="Parámetros de Producto 3", default=""), # Límites de Producto gr.inputs.Textbox(label="Límites de Producto 1", default="[ (0, np.inf), (0, np.inf) ]"), gr.inputs.Textbox(label="Límites de Producto 2", default=""), gr.inputs.Textbox(label="Límites de Producto 3", default=""), # Opciones de visualización gr.inputs.Dropdown( choices=['best', 'upper right', 'upper left', 'lower right', 'lower left'], label="Posición de la Leyenda", default='best' ), gr.inputs.Checkbox(label="Mostrar Leyenda", default=True), gr.inputs.Checkbox(label="Mostrar Parámetros", default=True), # Contadores de ecuaciones gr.inputs.Number(label="Número de Ecuaciones de Biomasa", default=1, precision=0), gr.inputs.Number(label="Número de Ecuaciones de Sustrato", default=1, precision=0), gr.inputs.Number(label="Número de Ecuaciones de Producto", default=1, precision=0), ] # Definir los componentes de salida outputs = [ gr.outputs.Image(type="auto", label="Gráfica Resultante"), gr.outputs.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.", theme="default", ) return interface