Xin Zhang
[fix]: refactor.
7f191bc
from logging import getLogger
from llama_cpp import Llama
from functools import lru_cache
logger = getLogger(__name__)
class QwenTranslator:
def __init__(self, model_path, system_prompt_en="", system_prompt_zh="") -> None:
self.llm = Llama(
model_path=model_path,
chat_format="chatml",
verbose=False)
self.sys_prompt_en = system_prompt_en
self.sys_prompt_zh = system_prompt_zh
def to_message(self, prompt, src_lang, dst_lang):
"""构造提示词"""
return [
{"role": "system", "content": self.sys_prompt_en if src_lang == "en" else self.sys_prompt_zh},
{"role": "user", "content": prompt},
]
@lru_cache(maxsize=10)
def translate(self, prompt, src_lang, dst_lang) -> str:
message = self.to_message(prompt, src_lang, dst_lang)
output = self.llm.create_chat_completion(messages=message, temperature=0)
return output['choices'][0]['message']['content']
def __call__(self, prompt,*args, **kwargs):
return self.llm(
prompt,
*args,
**kwargs
)