translator / app.py
Hatoku Alicia
Modify requirements.txt and some fix at app
8a60142
import gradio as gr
from transformers import pipeline
# Crear pipelines de traducci贸n espec铆ficos para cada combinaci贸n de idiomas
translation_pipelines = {
"G": pipeline("translation_en_to_de", model="Helsinki-NLP/opus-mt-en-de"),
"F": pipeline("translation_en_to_fr", model="Helsinki-NLP/opus-mt-en-fr"),
"S": pipeline("translation_en_to_es", model="Helsinki-NLP/opus-mt-en-es"),
"I": pipeline("translation_en_to_it", model="Helsinki-NLP/opus-mt-en-it")
}
# Mapear los valores de entrada de Gradio a las claves del diccionario
language_map = {
"German": "G",
"French": "F",
"Spanish": "S",
"Italian": "I"
}
def translate(text, target_language):
if not target_language:
return "Please select a target language."
# Mapeamos el idioma a la clave correspondiente en el diccionario
target_language_code = language_map.get(target_language, None)
if not target_language_code:
raise ValueError(f"Language '{target_language}' not supported")
# Usar el pipeline correspondiente
pipe = translation_pipelines[target_language_code]
# Realizar la traducci贸n
translation = pipe(text)
translated_text = translation[0]['translation_text']
return translated_text
with gr.Blocks() as demo:
inp = gr.Textbox(label="What do you wanna translate?")
language = gr.Radio(["German", "French", "Spanish", "Italian"], label="Select target language")
output = gr.Textbox(label="Translation")
translate_btn = gr.Button("Translate")
translate_btn.click(translate, inputs=[inp, language], outputs=output)
demo.launch(share=True)