| | |
| |
|
| | import gradio as gr |
| | from interface import process_and_plot |
| |
|
| | def create_interface(): |
| | """ |
| | Esta función crea la interfaz de usuario y la devuelve para que pueda ser lanzada |
| | desde app.py utilizando demo.launch(). |
| | """ |
| | |
| | with gr.Blocks(theme='upsatwal/mlsc_tiet') as demo: |
| | |
| | gr.Markdown("# Modelado de Bioprocesos con Ajuste de Datos (Qwen-2.5-7B-Instruct)") |
| |
|
| | with gr.Row(): |
| | with gr.Column(): |
| | |
| | file_input = gr.File(label="Subir archivo Excel", file_types=[".xlsx"]) |
| | |
| | |
| | biomass_eq1 = gr.Textbox( |
| | label="Ecuación de Biomasa 1", |
| | value="(xo * exp(um * t)) / (1 - (xo / xm) * (1 - exp(um * t)))" |
| | ) |
| | biomass_eq2 = gr.Textbox(label="Ecuación de Biomasa 2", value="") |
| | biomass_eq3 = gr.Textbox(label="Ecuación de Biomasa 3", value="") |
| | |
| | |
| | biomass_param1 = gr.Textbox( |
| | label="Parámetros de Biomasa 1 (separados por coma)", |
| | value="xo, xm, um" |
| | ) |
| | biomass_param2 = gr.Textbox(label="Parámetros de Biomasa 2 (separados por coma)", value="") |
| | biomass_param3 = gr.Textbox(label="Parámetros de Biomasa 3 (separados por coma)", value="") |
| | |
| | |
| | biomass_bound1 = gr.Textbox( |
| | label="Límites de Parámetros de Biomasa 1 (formato: (low, high) para cada parámetro)", |
| | value="(0, inf), (0, inf), (0, inf)" |
| | ) |
| | biomass_bound2 = gr.Textbox( |
| | label="Límites de Parámetros de Biomasa 2 (formato: (low, high) para cada parámetro)", |
| | value="" |
| | ) |
| | biomass_bound3 = gr.Textbox( |
| | label="Límites de Parámetros de Biomasa 3 (formato: (low, high) para cada parámetro)", |
| | value="" |
| | ) |
| | |
| | |
| | biomass_eq_count = gr.Number( |
| | label="Número de ecuaciones de Biomasa", |
| | value=1, |
| | precision=0 |
| | ) |
| |
|
| | with gr.Column(): |
| | |
| | substrate_eq1 = gr.Textbox( |
| | label="Ecuación de Sustrato 1", |
| | value="so - p * X(t) - q * log(1 - (xo / xm) * (1 - exp(um * t)))" |
| | ) |
| | substrate_eq2 = gr.Textbox(label="Ecuación de Sustrato 2", value="") |
| | substrate_eq3 = gr.Textbox(label="Ecuación de Sustrato 3", value="") |
| | |
| | |
| | substrate_param1 = gr.Textbox( |
| | label="Parámetros de Sustrato 1 (separados por coma)", |
| | value="so, p, q" |
| | ) |
| | substrate_param2 = gr.Textbox(label="Parámetros de Sustrato 2 (separados por coma)", value="") |
| | substrate_param3 = gr.Textbox(label="Parámetros de Sustrato 3 (separados por coma)", value="") |
| | |
| | |
| | substrate_bound1 = gr.Textbox( |
| | label="Límites de Parámetros de Sustrato 1 (formato: (low, high) para cada parámetro)", |
| | value="(0, inf), (0, inf), (0, inf)" |
| | ) |
| | substrate_bound2 = gr.Textbox( |
| | label="Límites de Parámetros de Sustrato 2 (formato: (low, high) para cada parámetro)", |
| | value="" |
| | ) |
| | substrate_bound3 = gr.Textbox( |
| | label="Límites de Parámetros de Sustrato 3 (formato: (low, high) para cada parámetro)", |
| | value="" |
| | ) |
| | |
| | |
| | substrate_eq_count = gr.Number( |
| | label="Número de ecuaciones de Sustrato", |
| | value=1, |
| | precision=0 |
| | ) |
| | |
| | with gr.Column(): |
| | |
| | product_eq1 = gr.Textbox( |
| | label="Ecuación de Producto 1", |
| | value="po + alpha * X(t) + beta * log(1 - (xo / xm) * (1 - exp(um * t)))" |
| | ) |
| | product_eq2 = gr.Textbox(label="Ecuación de Producto 2", value="") |
| | product_eq3 = gr.Textbox(label="Ecuación de Producto 3", value="") |
| | |
| | |
| | product_param1 = gr.Textbox( |
| | label="Parámetros de Producto 1 (separados por coma)", |
| | value="po, alpha, beta" |
| | ) |
| | product_param2 = gr.Textbox(label="Parámetros de Producto 2 (separados por coma)", value="") |
| | product_param3 = gr.Textbox(label="Parámetros de Producto 3 (separados por coma)", value="") |
| | |
| | |
| | product_bound1 = gr.Textbox( |
| | label="Límites de Parámetros de Producto 1 (formato: (low, high) para cada parámetro)", |
| | value="(0, inf), (0, inf), (0, inf)" |
| | ) |
| | product_bound2 = gr.Textbox( |
| | label="Límites de Parámetros de Producto 2 (formato: (low, high) para cada parámetro)", |
| | value="" |
| | ) |
| | product_bound3 = gr.Textbox( |
| | label="Límites de Parámetros de Producto 3 (formato: (low, high) para cada parámetro)", |
| | value="" |
| | ) |
| | |
| | |
| | product_eq_count = gr.Number( |
| | label="Número de ecuaciones de Producto", |
| | value=1, |
| | precision=0 |
| | ) |
| |
|
| | |
| | show_legend = gr.Checkbox(label="Mostrar leyenda", value=True) |
| | show_params = gr.Checkbox(label="Mostrar parámetros ajustados", value=True) |
| | legend_position = gr.Dropdown( |
| | label="Posición de la leyenda", |
| | choices=['best', 'upper right', 'upper left', 'lower right', 'lower left'], |
| | value='best' |
| | ) |
| | |
| | |
| | submit_button = gr.Button("Procesar y graficar") |
| | |
| | |
| | image_output = gr.Image(label="Gráfico generado") |
| | analysis_output = gr.Textbox(label="Análisis del Modelo", lines=10) |
| | |
| | |
| | submit_button.click( |
| | fn=process_and_plot, |
| | inputs=[ |
| | file_input, |
| | biomass_eq1, biomass_eq2, biomass_eq3, |
| | biomass_param1, biomass_param2, biomass_param3, |
| | biomass_bound1, biomass_bound2, biomass_bound3, |
| | substrate_eq1, substrate_eq2, substrate_eq3, |
| | substrate_param1, substrate_param2, substrate_param3, |
| | substrate_bound1, substrate_bound2, substrate_bound3, |
| | product_eq1, product_eq2, product_eq3, |
| | product_param1, product_param2, product_param3, |
| | product_bound1, product_bound2, product_bound3, |
| | legend_position, |
| | show_legend, |
| | show_params, |
| | biomass_eq_count, |
| | substrate_eq_count, |
| | product_eq_count |
| | ], |
| | outputs=[image_output, analysis_output] |
| | ) |
| |
|
| | return demo |
| |
|