import gradio as gr from transformers import( EncoderDecoderModel, PreTrainedTokenizerFast, BertJapaneseTokenizer, ) encoder_model_name = "cl-tohoku/bert-base-japanese-v2" decoder_model_name = "skt/kogpt2-base-v2" src_tokenizer = BertJapaneseTokenizer.from_pretrained(encoder_model_name) trg_tokenizer = PreTrainedTokenizerFast.from_pretrained(decoder_model_name) model = EncoderDecoderModel.from_pretrained("sappho192/ffxiv-ja-ko-translator") def translate(text_src): embeddings = src_tokenizer(text_src, return_attention_mask=False, return_token_type_ids=False, return_tensors='pt') embeddings = {k: v for k, v in embeddings.items()} output = model.generate(**embeddings, max_length=300)[0, 1:-1] text_trg = trg_tokenizer.decode(output.cpu()) return text_trg def endpoint(sentence): return translate(sentence) # demo = gr.Interface(fn=endpoint, inputs="text", outputs="text") with gr.Blocks() as demo: input = gr.Textbox(label="Sentence") output = gr.Textbox(label="Result") btn = gr.Button(value="Submit") btn.click(endpoint, inputs=[input], outputs=[output]) gr.Markdown("## Examples") gr.Markdown( """ For now, the model can translate the words included in Auto-Translate dictionary. 현재 버전의 번역기는 상용구에 포함된 단어나 표현이 들어간 문장을 대부분 번역할 수 있습니다. """) gr.Examples( [["絶アルテマウェポン破壊作戦をクリアし事ありますか?"], ["ギルガメッシュ討伐戦に行ってきます。一緒に行きましょうか?"], ["美容師の呼び鈴を使って髪方を変えますよ。"]], [input], output, endpoint, cache_examples=False ) if __name__ == "__main__": demo.launch()