import gradio as gr from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline import torch LANGS = ["kin_Latn","eng_Latn"] TASK = "translation" # CKPT = "DigitalUmuganda/Finetuned-NLLB" MODELS = ["facebook/nllb-200-distilled-600M","DigitalUmuganda/Finetuned-NLLB"] # model = AutoModelForSeq2SeqLM.from_pretrained(CKPT) # tokenizer = AutoTokenizer.from_pretrained(CKPT) device = 0 if torch.cuda.is_available() else -1 fb_model = AutoModelForSeq2SeqLM.from_pretrained("facebook/nllb-200-distilled-600M") du_model = AutoModelForSeq2SeqLM.from_pretrained("DigitalUmuganda/Finetuned-NLLB") tokenizer = AutoTokenizer.from_pretrained("facebook/nllb-200-distilled-600M") models = {"facebook/nllb-200-distilled-600M":fb_model,"DigitalUmuganda/Finetuned-NLLB":du_model} # def translate(text, src_lang, tgt_lang, max_length=400): def translate_fb(text, src_lang, tgt_lang, max_length=400): """ Translate the text from source lang to target lang """ print("fb src_lang: ",src_lang) print("fb dest_lang: ",tgt_lang) translation_pipeline = pipeline(TASK, tokenizer=tokenizer, src_lang=src_lang, tgt_lang=tgt_lang, model = fb_model, max_length=max_length, device=device) result = translation_pipeline(text) return result[0]['translation_text'] def translate_du(text, src_lang, tgt_lang, CKPT, max_length=400): """ Translate the text from source lang to target lang """ print("du src_lang: ",src_lang) print("du tgt_lang: ",tgt_lang) translation_pipeline = pipeline(TASK, tokenizer=tokenizer, src_lang=src_lang, tgt_lang=tgt_lang, model = du_model, max_length=max_length, device=device) result = translation_pipeline(text) return result[0]['translation_text'] gr_fb = gr.Interface( translate_fb, [ 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, 512, value=400, step=8, label="Max Length") ], ['text'], #examples=examples, # article=article, cache_examples=False, title="nllb-200-distilled-600M", #description=description ) gr_du = gr.Interface( translate_du, [ 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, 512, value=400, step=8, label="Max Length") ], ['text'], #examples=examples, # article=article, cache_examples=False, title="nllb-200-distilled-600M-Finetuned", # description=description ) gr.Parallel( gr_fb, gr_du, # [ # 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, 512, value=400, step=8, label="Max Length") ).launch()