修复闲聊消息过滤:拦截'有时间吗'等无主题查询
This commit is contained in:
+52
@@ -7281,6 +7281,58 @@ class MessageMonitor:
|
||||
if not text:
|
||||
logger.debug(f"[ocr] 过滤器2结果: 空文本,返回False")
|
||||
return False
|
||||
|
||||
# ⭐ 闲聊消息检测(2026-08-22 新增)
|
||||
# 特征:短文本 + 疑问词 + 无具体查询主题
|
||||
# 例:"有时间吗"、"在不在"、"好的"、"嗯嗯" → 缺乏可查库的具体主题
|
||||
# 检测逻辑:
|
||||
# 1. 长度 ≤ 8 字符(太短无法构成完整查询)
|
||||
# 2. 包含疑问词 "吗" 或 "呢",或匹配闲聊模式
|
||||
# 3. 无核心关键词(无插件名、功能词、名词等)
|
||||
_chat_patterns = [
|
||||
r'^有[\s\S]*?[吗呢]$', # "有时间吗"、"有东西吗"、"有人吗"
|
||||
r'^在不在$', # "在不在"
|
||||
r'^在[嘛吗]$', # "在吗"、"在嘛"
|
||||
r'^你好吗?$', # "你好"、"你好吗"
|
||||
r'^好(?:的|吧)?$', # "好"、"好的"、"好吧"
|
||||
r'^嗯(?:嗯|哼|哦)?$', # "嗯"、"嗯嗯"、"嗯哼"、"嗯哦"
|
||||
r'^哦(?:哦)?$', # "哦"、"哦哦"
|
||||
r'^收到$', # "收到"
|
||||
r'^明白(?:了)?$', # "明白"、"明白了"
|
||||
r'^知道(?:了|道)?$', # "知道"、"知道了"、"知道道"
|
||||
r'^嗯?啊$|啊?$|嗯?唉$', # "啊"、"唉"、"嗯唉"
|
||||
]
|
||||
_clean_text = re.sub(r'[;;,,。!?!?.\s]', '', text) # 去除标点
|
||||
if len(_clean_text) <= 8 and ('吗' in _clean_text or '呢' in _clean_text or '在不在' in _clean_text):
|
||||
for pat in _chat_patterns:
|
||||
if re.match(pat, _clean_text):
|
||||
logger.debug(f"[ocr] 过滤器2结果: 检测到闲聊消息(无具体主题),返回True: {text!r}")
|
||||
return True
|
||||
|
||||
# ⭐ 闲聊消息检测(2026-08-22 新增)
|
||||
# 特征:短文本 + 疑问词 + 无具体查询主题
|
||||
# 例:"有时间吗"、"在不在"、"好的"、"嗯嗯" → 缺乏可查库的具体主题
|
||||
# 检测逻辑:
|
||||
# 1. 长度 ≤ 8 字符(太短无法构成完整查询)
|
||||
# 2. 包含疑问词 "吗" 或 "呢"(疑问句式)
|
||||
# 3. 无核心关键词(无插件名、功能词、名词等)
|
||||
_chat_patterns = [
|
||||
r'^有[\s\S]*?吗$', # "有时间吗"、"有东西吗"
|
||||
r'^在不在$', # "在不在"
|
||||
r'^你好吗?$', # "你好"、"你好吗"
|
||||
r'^好的?$', # "好"、"好的"
|
||||
r'^嗯(?:嗯)?$', # "嗯"、"嗯嗯"
|
||||
r'^哦?$', # "哦"
|
||||
r'^嗯哼$', # "嗯哼"
|
||||
r'^收到$', # "收到"
|
||||
r'^明白$', # "明白"
|
||||
r'^知道了$', # "知道了"
|
||||
]
|
||||
if len(text) <= 8 and ('吗' in text or '呢' in text):
|
||||
for pat in _chat_patterns:
|
||||
if re.match(pat, text.strip()):
|
||||
logger.debug(f"[ocr] 过滤器2结果: 检测到闲聊消息(无具体主题),返回True: {text!r}")
|
||||
return True
|
||||
# HTML 标签:<br>、<br/>、<p>、</p>、<div>等
|
||||
if re.search(r'<\s*(?:br|p|div|span|a|img)\s*/?\s*>', text, re.IGNORECASE):
|
||||
logger.debug(f"[ocr] 过滤器2结果: 检测到HTML标签,返回True")
|
||||
|
||||
Reference in New Issue
Block a user