import gradio as gr from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline import torch MODEL_NAME = "Tamazight-NLP/NLLB-200-600M-Tamazight-All-Data" LANGS = ["tzm_Tfng", "kab_Latn", "taq_Tfng", "taq_Latn","eng_Latn"] TASK = "translation" device = 0 if torch.cuda.is_available() else -1 general_model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_NAME) tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) device = 0 if torch.cuda.is_available() else -1 def translate(text, source_lang, target_lang, max_length=450): """ Translate text from source language to target language """ # src_lang = choose_language(source_lang) # tgt_lang= choose_language(target_lang) # if src_lang==None: # return "Error: the source langage is incorrect" # elif tgt_lang==None: # return "Error: the target language is incorrect" translation_pipeline = pipeline(TASK, model=general_model, tokenizer=tokenizer, src_lang=source_lang, tgt_lang=target_lang, max_length=max_length, device=device) result = translation_pipeline(text) return result[0]['translation_text'] gradio_ui= gr.Interface( fn=translate, title="NLLB Tamazight Translation Demo", inputs= [ gr.components.Textbox(label="Text"), gr.components.Dropdown(label="Source Language", choices=LANGS), gr.components.Dropdown(label="Target Language", choices=LANGS), # gr.components.Slider(8, 400, value=400, step=8, label="Max Length") ], outputs=gr.outputs.Textbox(label="Translated text") ) gradio_ui.launch()