Files
ai-g3sb-backman2.0/backend/utils/question_locale.py
T
2026-04-14 10:28:22 +08:00

24 lines
763 B
Python

"""自然语言问题语种启发式(用于是否走「英译中」再 Text2SQL)。"""
import re
_CJK_RE = re.compile(r"[\u4e00-\u9fff]")
_HANGUL_RE = re.compile(r"[\uac00-\ud7af]")
_KANA_RE = re.compile(r"[\u3040-\u30ff]")
def looks_like_english_only(text: str) -> bool:
"""
判断问题是否主要为英文(无中日韩表意文字),适合先译成中文再走检索/选表。
含中文、日文假名、韩文时不翻译,避免破坏中英混合问句。
"""
s = (text or "").strip()
if not s or len(s) < 2:
return False
if _CJK_RE.search(s) or _HANGUL_RE.search(s) or _KANA_RE.search(s):
return False
latin = sum(1 for c in s if ("a" <= c <= "z") or ("A" <= c <= "Z"))
return latin >= 3