File size: 4,304 Bytes
4d13f14
5bce286
 
 
 
3855bb0
5bce286
 
 
 
 
 
 
 
 
 
 
 
 
f850537
5bce286
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f850537
5bce286
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fa3dc0d
 
 
 
 
 
 
 
 
 
 
 
53721aa
9287f75
16bdca6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
cedc387
 
5bce286
3855bb0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import gradio as gr
import tensorflow as tf
from transformers import pipeline
import os

'''
try:
    model_transformer_encoder = tf.keras.models.load_model('stacked_transformer_encoder.keras')
    model_transformer_positional_encoding = tf.keras.models.load_model('transformer_encoder_pos.keras')
    model_simple_rnn = tf.keras.models.load_model('model_simple_rnn.keras')
    model_lstm = tf.keras.models.load_model('model_lstm.keras')
    print("Modelos de clasificaci贸n cargados correctamente.")
except Exception as e:
    print(f"Error al cargar los modelos de clasificaci贸n: {e}")
    model_transformer_encoder = None
    model_transformer_positional_encoding = None
    model_simple_rnn = None
    model_lstm = None

# Cargar el pipeline de traducci贸n de Hugging Face 
try:
    translator_en_es = pipeline("translation", model="Helsinki-NLP/opus-mt-en-es")
except Exception as e:
    print(f"Error al cargar el modelo de traducci贸n (ingl茅s a espa帽ol): {e}")
    translator_en_es = None

def clasificar_noticia(texto, modelo_seleccionado):
    """Funci贸n para clasificar el texto usando el modelo seleccionado."""
    modelo_a_usar = None
    if modelo_seleccionado == "Transformer Encoder Apilado" and model_transformer_encoder is not None:
        modelo_a_usar = model_transformer_encoder
    elif modelo_seleccionado == "Transformer Positional Encoding" and model_transformer_positional_encoding is not None:
        modelo_a_usar = model_transformer_positional_encoding
    elif modelo_seleccionado == "Simple RNN" and model_simple_rnn is not None:
        modelo_a_usar = model_simple_rnn
    elif modelo_seleccionado == "LSTM" and model_lstm is not None:
        modelo_a_usar = model_lstm

    if modelo_a_usar:

        prediction = modelo_a_usar.predict([texto])
        return f"Clase predicha ({modelo_seleccionado}): {prediction}"
    else:
        return f"El modelo '{modelo_seleccionado}' no est谩 disponible."

def traducir_texto_en_es(texto_en):
    """Funci贸n para traducir texto de ingl茅s a espa帽ol."""
    if translator_en_es:
        result = translator_en_es(texto_en)[0]['translation_text']
        return result
    else:
        return "El modelo de traducci贸n (ingl茅s a espa帽ol) no est谩 disponible."

def main():
    with gr.Blocks() as demo:
        gr.Markdown("# Aplicaci贸n de Clasificaci贸n y Traducci贸n")

        input_texto_clasificacion = gr.Textbox(label="Ingresa la noticia aqu铆:")
        modelo_seleccion = gr.Dropdown(
            ["Transformer Encoder Apilado", "Transformer Positional Encoding", "Simple RNN", "LSTM"],
            label="Selecciona el modelo:"
        )
        output_clasificacion = gr.Textbox(label="Resultado de la clasificaci贸n:")
        boton_clasificar = gr.Button("Clasificar")

        input_texto_traduccion = gr.Textbox(label="Ingresa el texto en ingl茅s:")
        output_traduccion = gr.Textbox(label="Texto traducido al espa帽ol:")
        boton_traducir = gr.Button("Traducir")

        with gr.TabbedInterface(
            [
                [
                    gr.Markdown("## Clasificaci贸n de Noticias"),
                    input_texto_clasificacion,
                    modelo_seleccion,
                    boton_clasificar,
                    output_clasificacion,
                ],
                [
                    gr.Markdown("## Traducci贸n de Ingl茅s a Espa帽ol"),
                    input_texto_traduccion,
                    boton_traducir,
                    output_traduccion,
                ],
            ],
            ["Clasificaci贸n de Noticias", "Traducci贸n (Ingl茅s a Espa帽ol)"]
        ) as tabs:
            boton_clasificar.click(fn=clasificar_noticia, inputs=[input_texto_clasificacion, modelo_seleccion], outputs=output_clasificacion)
            boton_traducir.click(fn=traducir_texto_en_es, inputs=[input_texto_traduccion], outputs=output_traduccion)

    demo.launch()'''

import gradio as gr

def greet(name):
    return "Hello, " + name + "!"

def main():
    with gr.Blocks() as demo:
        name_input = gr.Textbox(label="Name")
        output_text = gr.Textbox(label="Output")
        greet_button = gr.Button("Greet")
        greet_button.click(fn=greet, inputs=name_input, outputs=output_text)

    demo.launch()

if __name__ == "__main__":
    main()