diff --git a/query/query_parser.py b/query/query_parser.py index 6435aa5..b3aa3d0 100644 --- a/query/query_parser.py +++ b/query/query_parser.py @@ -151,6 +151,17 @@ class QueryParser: """Return pre-initialized translator.""" return self._translator + @staticmethod + def _pick_query_translation_model(source_lang: str, target_lang: str) -> str: + """Pick the translation capability for query-time translation.""" + src = str(source_lang or "").strip().lower() + tgt = str(target_lang or "").strip().lower() + if src == "zh" and tgt == "en": + return "opus-mt-zh-en" + if src == "en" and tgt == "zh": + return "opus-mt-en-zh" + return "deepl" + def _simple_tokenize(self, text: str) -> List[str]: """ Lightweight tokenizer fallback. @@ -303,21 +314,31 @@ class QueryParser: thread_name_prefix="query-translation-wait", ) for lang in target_langs: + model_name = self._pick_query_translation_model(detected_lang, lang) + log_debug( + f"Submitting query translation | source={detected_lang} target={lang} model={model_name}" + ) translation_futures[lang] = translation_executor.submit( self.translator.translate, query_text, lang, detected_lang, "ecommerce_search_query", + model_name, ) else: for lang in target_langs: + model_name = self._pick_query_translation_model(detected_lang, lang) + log_debug( + f"Submitting query translation | source={detected_lang} target={lang} model={model_name}" + ) self._translation_executor.submit( self.translator.translate, query_text, lang, detected_lang, "ecommerce_search_query", + model_name, ) if translations: -- libgit2 0.21.2