import gradio as gr from transformers import pipeline pipe = pipeline("translation", model="Helsinki-NLP/opus-mt-en-es") def invertir_texto(texto): """ Invierte el texto de entrada. Esta función toma una cadena de texto como entrada y devuelve la cadena invertida. En una aplicación de traducción real, esta función se reemplazaría con un modelo de traducción. Args: texto (str): El texto que se va a invertir. Returns: str: El texto invertido. """ return texto[::-1] def borrar_entrada(texto_entrada): """ Borra el texto del cuadro de texto de entrada. Esta función toma el texto actual del cuadro de texto de entrada y devuelve una cadena vacía, lo que efectivamente borra el contenido del cuadro. Args: texto_entrada (str): El texto actual en el cuadro de texto de entrada. Returns: str: Una cadena vacía. """ return "" with gr.Blocks() as interfaz_traductor: """ Define la interfaz gráfica de la aplicación de traducción. Este bloque WITH crea y gestiona todos los componentes de la interfaz. Aquí se define la estructura principal de la GUI. """ # Título de la aplicación gr.Markdown("# Mini Traductor") # Componente para la entrada de texto texto_entrada = gr.Textbox(label="Texto a traducir", placeholder="Pega aquí el texto") # Botón para borrar el texto de entrada boton_borrar = gr.Button("Borrar todo") # Componente para la salida del texto traducido texto_salida = gr.Textbox(label="Traducción", placeholder="La traducción aparecerá aquí", interactive=False) # Definición de las interacciones: cuando el texto de entrada cambia, se llama a 'invertir_texto' texto_entrada.change(invertir_texto, inputs=texto_entrada, outputs=texto_salida) # Definición de la interacción: cuando se hace clic en el botón 'Borrar todo', se llama a 'borrar_entrada' boton_borrar.click(borrar_entrada, inputs=texto_entrada, outputs=texto_entrada) # Ejemplos para facilitar la interacción del usuario gr.Examples([["Hola Mundo"], ["¿Cómo estás?"], ["Gracias"]], inputs=texto_entrada) interfaz_traductor.launch()