File size: 1,362 Bytes
7c97d72 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
import gradio as gr
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
import torch
# Tải mô hình và tokenizer
model_name = "VietAI/envit5-translation"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
# Chuyển mô hình sang GPU nếu có
device = "cuda" if torch.cuda.is_available() else "cpu"
model = model.to(device)
# Hàm dịch ngôn ngữ với tùy chọn ngôn ngữ
def translate(text, language):
prefix = "vi: " if language == "Tiếng Việt -> Tiếng Anh" else "en: "
inputs = tokenizer(prefix + text, return_tensors="pt", padding=True).input_ids.to(device)
outputs = model.generate(inputs, max_length=512)
translation = tokenizer.decode(outputs[0], skip_special_tokens=True, clean_up_tokenization_spaces=True)
return translation
# Tạo giao diện với Gradio và thêm nút chọn ngôn ngữ
interface = gr.Interface(
fn=translate,
inputs=[
gr.Textbox(label="Nhập văn bản cần dịch"),
gr.Dropdown(choices=["Tiếng Việt -> Tiếng Anh", "Tiếng Anh -> Tiếng Việt"], label="Chọn ngôn ngữ")
],
outputs="text",
title="Ứng dụng dịch ngôn ngữ",
description="Dịch từ tiếng Việt sang tiếng Anh và ngược lại."
)
# Khởi chạy ứng dụng
interface.launch()
|