import gradio as gr from transformers import AutoTokenizer, AutoModelForSeq2SeqLM md_name1 = "vinai/vinai-translate-vi2en-v2" tokenizer_vi2en = AutoTokenizer.from_pretrained(md_name1, src_lang="vi_VN") model_vi2en = AutoModelForSeq2SeqLM.from_pretrained(md_name1) def translate_vi2en(vi_text: str) -> str: input_ids = tokenizer_vi2en(vi_text, return_tensors="pt").input_ids output_ids = model_vi2en.generate( input_ids, decoder_start_token_id=tokenizer_vi2en.lang_code_to_id["en_XX"], num_return_sequences=1, # # With sampling do_sample=True, top_k=100, top_p=0.8, # With beam search num_beams=5, early_stopping=True ) en_text = tokenizer_vi2en.batch_decode(output_ids, skip_special_tokens=True) en_text = " ".join(en_text) return en_text md_name2 = "vinai/vinai-translate-en2vi-v2" tokenizer_en2vi = AutoTokenizer.from_pretrained(md_name2, src_lang="en_XX") model_en2vi = AutoModelForSeq2SeqLM.from_pretrained(md_name2) def translate_en2vi(en_text: str) -> str: input_ids = tokenizer_en2vi(en_text, return_tensors="pt").input_ids output_ids = model_en2vi.generate( input_ids, decoder_start_token_id=tokenizer_en2vi.lang_code_to_id["vi_VN"], num_return_sequences=1, # With sampling do_sample=True, top_k=100, top_p=0.8, # With beam search num_beams=5, early_stopping=True ) vi_text = tokenizer_en2vi.batch_decode(output_ids, skip_special_tokens=True) vi_text = " ".join(vi_text) return vi_text vi_example_text = ["Xin chào, chúng tôi là nhóm 01, bao gồm 3 thành viên: Minh Trí, Kim Thanh và Hồng Ngọc", "Chúng ta đang từng bước học cách trở nên tốt đẹp hơn!", "Bạn có phải là người chăm chỉ?", "Luận văn thạc sĩ Khoa học Máy tính", "Hãy sống như những đoá hoa toả ngát hương thơm"] en_example_text = ["Life is countless days of trying.", "Always remember, what doesn't kill you makes you stronger", "What's up man?", "How could you...?", "Could you do me a favor?"] # GIAO DIỆN WEB MACHINE TRANSLATION with gr.Blocks(theme=gr.themes.Soft(), title="Charmed's One MT") as demo: with gr.Row(): test = gr.Text(label="MACHINE TRANSLATION", value="The Application of English-Vietnamese automatic translation was created by The Power of Three: Doan Minh Tri, Che Thi Kim Thanh and Nguyen Thi Hong Ngoc",) with gr.Tabs(): with gr.TabItem("VIETNAMESE TO ENGLISH"): with gr.Row(): with gr.Column(): vietnamese = gr.Textbox(label="Vietnamese Text") gr.ClearButton(vietnamese) with gr.Column(): english = gr.Textbox(label="English Text") translate_to_english = gr.Button(value="Translate To English") translate_to_english.click(lambda text: translate_vi2en(text), inputs=vietnamese, outputs=english) gr.Examples(examples=vi_example_text, inputs=[vietnamese]) with gr.TabItem("ENGLISH TO VIETNAMESE"): with gr.Row(): with gr.Column(): english = gr.Textbox(label="English Text") gr.ClearButton(english) with gr.Column(): vietnamese = gr.Textbox(label="Vietnamese Text") translate_to_vietnamese = gr.Button(value="Translate To Vietnamese") translate_to_vietnamese.click(lambda text: translate_en2vi(text), inputs=english, outputs=vietnamese) gr.Examples(examples=en_example_text, inputs=[english]) if __name__ == "__main__": demo.launch(share=True) #share=True NẾU MUỐN ONLINE