zenityx commited on
Commit
407d58d
·
verified ·
1 Parent(s): 5153f55

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -9
app.py CHANGED
@@ -1,29 +1,31 @@
1
  import math
2
  import gradio as gr
3
- from transformers import MarianTokenizer, MarianMTModel
4
  import re
5
  import functools
6
 
7
  ###################################
8
- # 1) โหลดโมเดล MarianMT (Thai->En) ครั้งเดียวเมื่อเริ่มแอป
9
  ###################################
10
- model_name = "Helsinki-NLP/opus-mt-th-en"
11
- tokenizer = MarianTokenizer.from_pretrained(model_name)
12
- model = MarianMTModel.from_pretrained(model_name)
13
 
14
  # เพิ่มการแคชผลลัพธ์การแปล
15
  @functools.lru_cache(maxsize=1024)
16
  def translate_th_to_en(text_th: str) -> str:
17
  """
18
- แปลไทย -> อังกฤษ ด้วย MarianMT บน CPU
19
  * เรียกเฉพาะส่วนที่ผู้ใช้พิมพ์ เช่น ชื่อดาว, ชื่อสิ่งมีชีวิต
20
  """
21
  text_th = text_th.strip()
22
  if not text_th:
23
  return ""
24
- inputs = tokenizer(text_th, return_tensors="pt", max_length=512, truncation=True)
25
- translation_tokens = model.generate(**inputs, max_length=512)
26
- en_text = tokenizer.decode(translation_tokens[0], skip_special_tokens=True)
 
 
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
  ###################################