File size: 1,089 Bytes
6b4f62a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# translation.py
from transformers import pipeline
import logging

logger = logging.getLogger("translation-agent")
logging.basicConfig(level=logging.INFO, format="%(asctime)s — %(name)s — %(levelname)s — %(message)s", force=True) # Change INFO to DEBUG for full-ctx JSON loader

# To use lazy model loader
vi_en = None
zh_en = None

def translate_query(text: str, lang_code: str) -> str:
    global vi_en, zh_en
    if lang_code == "vi":
        if vi_en is None:
            vi_en = pipeline("translation", model="VietAI/envit5-translation", src_lang="vi", tgt_lang="en", device=-1)
        result = vi_en(text, max_length=512)[0]["translation_text"]
        logger.info(f"[En-Vi] Query in `{lang_code}` translated to: {result}")
        return result
    elif lang_code == "zh":
        if zh_en is None:
            zh_en = pipeline("translation", model="Helsinki-NLP/opus-mt-zh-en", device=-1)
        result = zh_en(text, max_length=512)[0]["translation_text"]
        logger.info(f"[En-Zh] Query in `{lang_code}` translated to: {result}")
        return result
    return text