import gradio as gr import numpy as np import matplotlib.pyplot as plt def process_inputs(function_type, amplitude, frequency, text): """Procesa múltiples entradas""" # Generar visualización matemática x = np.linspace(0, 10, 500) plt.figure(figsize=(10, 6)) plt.title(f"Función: {function_type}") if function_type == "Senoidal": y = amplitude * np.sin(frequency * x) elif function_type == "Cosenoidal": y = amplitude * np.cos(frequency * x) elif function_type == "Exponencial": y = amplitude * np.exp(-frequency * x) plt.plot(x, y) plt.grid(True) plt.xlabel("Eje X") plt.ylabel("Amplitud") # Análisis de texto text_analysis = { "Longitud": len(text), "Palabras": len(text.split()), "Mayúsculas": sum(1 for c in text if c.isupper()), "Minúsculas": sum(1 for c in text if c.islower()) } return plt, text_analysis # Crear interfaz de Gradio con la función especificada demo = gr.Interface( fn=process_inputs, # Añadido el argumento fn title="Demo Interactiva Multifuncional", description="Visualización matemática y análisis de texto", inputs=[ gr.Dropdown(["Senoidal", "Cosenoidal", "Exponencial"], label="Tipo de Función"), gr.Slider(minimum=0.1, maximum=5, value=1, label="Amplitud"), gr.Slider(minimum=0.1, maximum=5, value=1, label="Frecuencia"), gr.Textbox(label="Texto para Análisis") ], outputs=[ gr.Plot(label="Visualización Matemática"), gr.JSON(label="Análisis de Texto") ] ) demo.launch()