juancamval commited on
Commit
68949f2
·
verified ·
1 Parent(s): 23019d7

Update app.py

Browse files

Eliminacion de inyecciones html y css, ingreso de un nuevo modelo para deteccion de idioma especifico ingles, asi controlar el idioma de entrada

Files changed (1) hide show
  1. app.py +39 -21
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
- def traducir_texto(texto_en):
 
 
 
8
  """
9
- Traduce el texto de entrada del inglés al español utilizando el modelo predefinido.
10
 
11
  Args:
12
- texto_en (str): El texto en inglés que se va a traducir.
13
 
14
  Returns:
15
- str: El texto traducido al español.
16
  """
17
  try:
18
- if not texto_en.strip():
19
- return ""
20
- resultado = modelo_traduccion(texto_en)
21
- return resultado[0]['translation_text']
22
  except Exception as e:
23
- return f"Error en la traducción: {e}"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 título centralizado y fuente Roboto (intento corregido).
40
- """
41
- gr.HTML("""
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).*", styles={"font-family": "Roboto, sans-serif"})
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)