Spaces:
Running
Running
import gradio as gr | |
from transformers import MBartForConditionalGeneration, MBart50Tokenizer | |
# Load model and tokenizer | |
model_name = "facebook/mbart-large-50" | |
model = MBartForConditionalGeneration.from_pretrained(model_name) | |
tokenizer = MBart50Tokenizer.from_pretrained(model_name) | |
def translate(text, direction): | |
if direction == "Arab β Indonesia": | |
src_lang = "ar_AR" | |
tgt_lang = "id_ID" | |
else: | |
src_lang = "id_ID" | |
tgt_lang = "ar_AR" | |
tokenizer.src_lang = src_lang | |
inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True) | |
generated_tokens = model.generate(**inputs, forced_bos_token_id=tokenizer.lang_code_to_id[tgt_lang]) | |
translation = tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)[0] | |
return translation | |
# Define UI | |
demo = gr.Interface( | |
fn=translate, | |
inputs=[ | |
gr.Textbox(label="Masukkan teks"), | |
gr.Radio(["Arab β Indonesia", "Indonesia β Arab"], label="Arah Terjemahan") | |
], | |
outputs=gr.Textbox(label="Hasil Terjemahan"), | |
title="Penerjemah Arab - Indonesia dengan mBART50", | |
description="Masukkan teks dalam bahasa Arab atau Indonesia dan pilih arah terjemahan." | |
) | |
demo.launch() | |