Update app.py
Browse files
app.py
CHANGED
|
@@ -1,31 +1,68 @@
|
|
| 1 |
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
|
| 2 |
import gradio as gr
|
| 3 |
|
| 4 |
-
|
|
|
|
|
|
|
|
|
|
| 5 |
|
| 6 |
-
|
| 7 |
-
|
|
|
|
|
|
|
| 8 |
|
| 9 |
-
def
|
| 10 |
-
inputs =
|
|
|
|
| 11 |
|
| 12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
|
| 14 |
-
|
| 15 |
outputs[0],
|
| 16 |
skip_special_tokens=True
|
| 17 |
)
|
| 18 |
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
|
| 31 |
iface.launch(server_name="0.0.0.0")
|
|
|
|
| 1 |
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
|
| 2 |
import gradio as gr
|
| 3 |
|
| 4 |
+
# RU -> VI
|
| 5 |
+
ruvi_model_name = "Helsinki-NLP/opus-mt-ru-vi"
|
| 6 |
+
ruvi_tokenizer = AutoTokenizer.from_pretrained(ruvi_model_name)
|
| 7 |
+
ruvi_model = AutoModelForSeq2SeqLM.from_pretrained(ruvi_model_name)
|
| 8 |
|
| 9 |
+
# VI -> RU
|
| 10 |
+
viru_model_name = "Helsinki-NLP/opus-mt-vi-ru"
|
| 11 |
+
viru_tokenizer = AutoTokenizer.from_pretrained(viru_model_name)
|
| 12 |
+
viru_model = AutoModelForSeq2SeqLM.from_pretrained(viru_model_name)
|
| 13 |
|
| 14 |
+
def ru_to_vi(text):
|
| 15 |
+
inputs = ruvi_tokenizer(text, return_tensors="pt")
|
| 16 |
+
outputs = ruvi_model.generate(**inputs)
|
| 17 |
|
| 18 |
+
return ruvi_tokenizer.decode(
|
| 19 |
+
outputs[0],
|
| 20 |
+
skip_special_tokens=True
|
| 21 |
+
)
|
| 22 |
+
|
| 23 |
+
def vi_to_ru(text):
|
| 24 |
+
inputs = viru_tokenizer(text, return_tensors="pt")
|
| 25 |
+
outputs = viru_model.generate(**inputs)
|
| 26 |
|
| 27 |
+
return viru_tokenizer.decode(
|
| 28 |
outputs[0],
|
| 29 |
skip_special_tokens=True
|
| 30 |
)
|
| 31 |
|
| 32 |
+
with gr.Blocks() as iface:
|
| 33 |
+
|
| 34 |
+
gr.Markdown("# 🇷🇺⇄🇻🇳 Russian ↔ Vietnamese")
|
| 35 |
+
|
| 36 |
+
with gr.Tab("🇷🇺 Nga → Việt"):
|
| 37 |
+
input_ru = gr.Textbox(
|
| 38 |
+
lines=2,
|
| 39 |
+
placeholder="Nhập tiếng Nga..."
|
| 40 |
+
)
|
| 41 |
+
|
| 42 |
+
output_vi = gr.Textbox()
|
| 43 |
+
|
| 44 |
+
btn1 = gr.Button("Translate")
|
| 45 |
+
|
| 46 |
+
btn1.click(
|
| 47 |
+
ru_to_vi,
|
| 48 |
+
inputs=input_ru,
|
| 49 |
+
outputs=output_vi
|
| 50 |
+
)
|
| 51 |
+
|
| 52 |
+
with gr.Tab("🇻🇳 Việt → Nga"):
|
| 53 |
+
input_vi = gr.Textbox(
|
| 54 |
+
lines=2,
|
| 55 |
+
placeholder="Nhập tiếng Việt..."
|
| 56 |
+
)
|
| 57 |
+
|
| 58 |
+
output_ru = gr.Textbox()
|
| 59 |
+
|
| 60 |
+
btn2 = gr.Button("Translate")
|
| 61 |
+
|
| 62 |
+
btn2.click(
|
| 63 |
+
vi_to_ru,
|
| 64 |
+
inputs=input_vi,
|
| 65 |
+
outputs=output_ru
|
| 66 |
+
)
|
| 67 |
|
| 68 |
iface.launch(server_name="0.0.0.0")
|