Update app.py
Browse files
app.py
CHANGED
@@ -1,29 +1,31 @@
|
|
1 |
import math
|
2 |
import gradio as gr
|
3 |
-
from transformers import
|
4 |
import re
|
5 |
import functools
|
6 |
|
7 |
###################################
|
8 |
-
# 1) โหลดโมเดล
|
9 |
###################################
|
10 |
-
model_name = "
|
11 |
-
tokenizer =
|
12 |
-
model =
|
13 |
|
14 |
# เพิ่มการแคชผลลัพธ์การแปล
|
15 |
@functools.lru_cache(maxsize=1024)
|
16 |
def translate_th_to_en(text_th: str) -> str:
|
17 |
"""
|
18 |
-
แปลไทย -> อังกฤษ ด้วย
|
19 |
* เรียกเฉพาะส่วนที่ผู้ใช้พิมพ์ เช่น ชื่อดาว, ชื่อสิ่งมีชีวิต
|
20 |
"""
|
21 |
text_th = text_th.strip()
|
22 |
if not text_th:
|
23 |
return ""
|
24 |
-
|
25 |
-
|
26 |
-
|
|
|
|
|
27 |
return en_text
|
28 |
|
29 |
###################################
|
|
|
1 |
import math
|
2 |
import gradio as gr
|
3 |
+
from transformers import MT5Tokenizer, MT5ForConditionalGeneration
|
4 |
import re
|
5 |
import functools
|
6 |
|
7 |
###################################
|
8 |
+
# 1) โหลดโมเดล mT5 (Thai->En) ครั้งเดียวเมื่อเริ่มแอป
|
9 |
###################################
|
10 |
+
model_name = "google/mt5-small"
|
11 |
+
tokenizer = MT5Tokenizer.from_pretrained(model_name)
|
12 |
+
model = MT5ForConditionalGeneration.from_pretrained(model_name)
|
13 |
|
14 |
# เพิ่มการแคชผลลัพธ์การแปล
|
15 |
@functools.lru_cache(maxsize=1024)
|
16 |
def translate_th_to_en(text_th: str) -> str:
|
17 |
"""
|
18 |
+
แปลไทย -> อังกฤษ ด้วย mT5 บน CPU
|
19 |
* เรียกเฉพาะส่วนที่ผู้ใช้พิมพ์ เช่น ชื่อดาว, ชื่อสิ่งมีชีวิต
|
20 |
"""
|
21 |
text_th = text_th.strip()
|
22 |
if not text_th:
|
23 |
return ""
|
24 |
+
# เพิ่ม prefix เพื่อบอกว่าเป็นการแปลภาษาไทยเป็นอังกฤษ
|
25 |
+
input_text = f"translate Thai to English: {text_th}"
|
26 |
+
inputs = tokenizer.encode(input_text, return_tensors="pt", max_length=512, truncation=True)
|
27 |
+
outputs = model.generate(inputs, max_length=512, num_beams=4, early_stopping=True)
|
28 |
+
en_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
|
29 |
return en_text
|
30 |
|
31 |
###################################
|