Spaces:
Sleeping
Sleeping
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() | |