ClaudBarbara commited on
Commit
66cf31b
·
verified ·
1 Parent(s): 12d6a10

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -0
app.py ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import AutoModelForSeq2SeqLM, NllbTokenizerFast
3
+ import torch
4
+
5
+ # Load model
6
+ model_id = "ClaudBarbara/Open_Access_Khmer"
7
+ model = AutoModelForSeq2SeqLM.from_pretrained(model_id)
8
+ tokenizer = NllbTokenizerFast.from_pretrained(model_id)
9
+
10
+ def translate(text, direction):
11
+ if direction == "English to Khmer":
12
+ src_lang, tgt_lang = "eng_Latn", "khm_Khmr"
13
+ else:
14
+ src_lang, tgt_lang = "khm_Khmr", "eng_Latn"
15
+
16
+ tokenizer.src_lang = src_lang
17
+ inputs = tokenizer(text, return_tensors="pt", max_length=512, truncation=True)
18
+
19
+ with torch.no_grad():
20
+ outputs = model.generate(
21
+ **inputs,
22
+ forced_bos_token_id=tokenizer.convert_tokens_to_ids(tgt_lang),
23
+ max_length=512,
24
+ num_beams=4
25
+ )
26
+
27
+ return tokenizer.decode(outputs[0], skip_special_tokens=True)
28
+
29
+ demo = gr.Interface(
30
+ fn=translate,
31
+ inputs=[
32
+ gr.Textbox(label="Input Text", lines=5),
33
+ gr.Radio(["English to Khmer", "Khmer to English"], label="Direction", value="English to Khmer")
34
+ ],
35
+ outputs=gr.Textbox(label="Translation", lines=5),
36
+ title="Khmer Legal Bridge",
37
+ description="English-Khmer Legal Translation"
38
+ )
39
+
40
+ demo.launch()