Spaces:
Runtime error
Runtime error
Update app.py
Browse filesEliminacion de inyecciones html y css, ingreso de un nuevo modelo para deteccion de idioma especifico ingles, asi controlar el idioma de entrada
app.py
CHANGED
@@ -4,23 +4,49 @@ import gradio as gr
|
|
4 |
# Define el modelo de traducción inglés-español
|
5 |
modelo_traduccion = pipeline("translation", model="Helsinki-NLP/opus-mt-en-es")
|
6 |
|
7 |
-
|
|
|
|
|
|
|
8 |
"""
|
9 |
-
|
10 |
|
11 |
Args:
|
12 |
-
|
13 |
|
14 |
Returns:
|
15 |
-
str: El
|
16 |
"""
|
17 |
try:
|
18 |
-
|
19 |
-
|
20 |
-
resultado = modelo_traduccion(texto_en)
|
21 |
-
return resultado[0]['translation_text']
|
22 |
except Exception as e:
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
def borrar_entrada(texto_entrada):
|
26 |
"""
|
@@ -36,24 +62,16 @@ def borrar_entrada(texto_entrada):
|
|
36 |
|
37 |
with gr.Blocks() as interfaz_traductor:
|
38 |
"""
|
39 |
-
Define la interfaz gráfica de la aplicación de traducción de inglés a español con
|
40 |
-
"""
|
41 |
-
gr.
|
42 |
-
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap">
|
43 |
-
<style>
|
44 |
-
body, button, input, textarea, div {
|
45 |
-
font-family: 'Roboto', sans-serif !important;
|
46 |
-
}
|
47 |
-
</style>
|
48 |
-
<h1 style='text-align: center; font-family: Roboto, sans-serif;'>Traductor Inglés a Español</h1>
|
49 |
-
""")
|
50 |
with gr.Row():
|
51 |
with gr.Column():
|
52 |
texto_entrada_en = gr.Textbox(label="Texto en inglés", placeholder="Pega aquí el texto en inglés", lines=10)
|
53 |
boton_borrar = gr.Button("Borrar todo")
|
54 |
with gr.Column():
|
55 |
texto_salida_es = gr.Textbox(label="Traducción al español", placeholder="La traducción aparecerá aquí", interactive=False, lines=10)
|
56 |
-
gr.Markdown("*Puedes copiar el texto traducido seleccionándolo y usando Ctrl+C (o Cmd+C en macOS).*"
|
57 |
|
58 |
texto_entrada_en.change(traducir_texto, inputs=texto_entrada_en, outputs=texto_salida_es)
|
59 |
boton_borrar.click(borrar_entrada, inputs=texto_entrada_en, outputs=texto_entrada_en)
|
|
|
4 |
# Define el modelo de traducción inglés-español
|
5 |
modelo_traduccion = pipeline("translation", model="Helsinki-NLP/opus-mt-en-es")
|
6 |
|
7 |
+
# Define el modelo de clasificación de idiomas
|
8 |
+
modelo_idioma = pipeline("text-classification", model="papluca/xlm-roberta-large-language-detection")
|
9 |
+
|
10 |
+
def detectar_idioma(texto):
|
11 |
"""
|
12 |
+
Detecta el idioma del texto utilizando un modelo de clasificación.
|
13 |
|
14 |
Args:
|
15 |
+
texto (str): El texto del cual se quiere detectar el idioma.
|
16 |
|
17 |
Returns:
|
18 |
+
str: El código del idioma detectado (ej: 'en', 'es').
|
19 |
"""
|
20 |
try:
|
21 |
+
resultado = modelo_idioma(texto, top_k=1)[0]
|
22 |
+
return resultado['label']
|
|
|
|
|
23 |
except Exception as e:
|
24 |
+
print(f"Error en la detección de idioma: {e}")
|
25 |
+
return None
|
26 |
+
|
27 |
+
def traducir_texto(texto_en):
|
28 |
+
"""
|
29 |
+
Traduce el texto de entrada del inglés al español, previa verificación del idioma.
|
30 |
+
|
31 |
+
Args:
|
32 |
+
texto_en (str): El texto en inglés que se va a traducir.
|
33 |
+
|
34 |
+
Returns:
|
35 |
+
str: El texto traducido al español o un mensaje de error si el idioma no es inglés.
|
36 |
+
"""
|
37 |
+
if not texto_en.strip():
|
38 |
+
return ""
|
39 |
+
|
40 |
+
idioma_detectado = detectar_idioma(texto_en)
|
41 |
+
|
42 |
+
if idioma_detectado == 'en':
|
43 |
+
try:
|
44 |
+
resultado = modelo_traduccion(texto_en)
|
45 |
+
return resultado[0]['translation_text']
|
46 |
+
except Exception as e:
|
47 |
+
return f"Error en la traducción: {e}"
|
48 |
+
else:
|
49 |
+
return "Por favor, introduce texto en inglés para traducir."
|
50 |
|
51 |
def borrar_entrada(texto_entrada):
|
52 |
"""
|
|
|
62 |
|
63 |
with gr.Blocks() as interfaz_traductor:
|
64 |
"""
|
65 |
+
Define la interfaz gráfica de la aplicación de traducción de inglés a español con detección de idioma y título estándar.
|
66 |
+
"""
|
67 |
+
gr.Markdown("# Traductor Inglés a Español")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
with gr.Row():
|
69 |
with gr.Column():
|
70 |
texto_entrada_en = gr.Textbox(label="Texto en inglés", placeholder="Pega aquí el texto en inglés", lines=10)
|
71 |
boton_borrar = gr.Button("Borrar todo")
|
72 |
with gr.Column():
|
73 |
texto_salida_es = gr.Textbox(label="Traducción al español", placeholder="La traducción aparecerá aquí", interactive=False, lines=10)
|
74 |
+
gr.Markdown("*Puedes copiar el texto traducido seleccionándolo y usando Ctrl+C (o Cmd+C en macOS).*")
|
75 |
|
76 |
texto_entrada_en.change(traducir_texto, inputs=texto_entrada_en, outputs=texto_salida_es)
|
77 |
boton_borrar.click(borrar_entrada, inputs=texto_entrada_en, outputs=texto_entrada_en)
|