|
import gradio as gr |
|
|
|
|
|
from translation import Translator, LANGUAGES, MODEL_URL |
|
LANGUAGES_LIST = list(LANGUAGES.keys()) |
|
|
|
|
|
def translate_wrapper(text, src, trg, by_sentence=True, preprocess=True, random=False, num_beams=4): |
|
src_lang = LANGUAGES.get(src) |
|
tgt_lang = LANGUAGES.get(trg) |
|
|
|
|
|
result = translator.translate( |
|
text=text, |
|
src_lang=src_lang, |
|
tgt_lang=tgt_lang, |
|
do_sample=random, |
|
num_beams=int(num_beams), |
|
by_sentence=by_sentence, |
|
preprocess=preprocess, |
|
) |
|
return result |
|
|
|
|
|
article = f""" |
|
This is the demo for a NLLB-200-600M model fine-tuned for a few (mostly new) languages. |
|
|
|
The model itself is available at https://huggingface.co/{MODEL_URL} |
|
|
|
If you want to host in on your own backend, consider running this dockerized app: https://github.com/slone-nlp/nllb-docker-demo. |
|
""" |
|
|
|
|
|
interface = gr.Interface( |
|
translate_wrapper, |
|
[ |
|
gr.Textbox(label="Text", lines=2, placeholder='text to translate '), |
|
gr.Dropdown(LANGUAGES_LIST, type="value", label='source language', value=LANGUAGES_LIST[0]), |
|
gr.Dropdown(LANGUAGES_LIST, type="value", label='target language', value=LANGUAGES_LIST[1]), |
|
gr.Checkbox(label="by sentence", value=True), |
|
gr.Checkbox(label="text preprocesing", value=True), |
|
gr.Checkbox(label="randomize", value=False), |
|
gr.Dropdown([1, 2, 3, 4, 5], label="number of beams", value=4), |
|
], |
|
"text", |
|
title='Erzya-Russian translation', |
|
article=article, |
|
) |
|
|
|
|
|
if __name__ == '__main__': |
|
translator = Translator() |
|
|
|
interface.launch() |
|
|