From 6148b2166a0979a3638de6fc6d34a98cb7f69dbf Mon Sep 17 00:00:00 2001 From: ngfchl Date: Tue, 7 Jul 2026 23:30:01 +0800 Subject: [PATCH] fix: detect ai subscription card spam --- rules/spam_regex.txt | 6 ++++++ services/spam_detector.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/rules/spam_regex.txt b/rules/spam_regex.txt index ec8140b..c4b6cb8 100644 --- a/rules/spam_regex.txt +++ b/rules/spam_regex.txt @@ -29,3 +29,9 @@ (?:免费订购热线|销售热线|低价出售|款到发货|连锁加盟|加盟连锁).{0,20}(?:联系|私聊|代理|招商|加盟)?|75 (?:私人侦探|私家侦探|针孔摄象|调查婚外情).{0,20}(?:联系|私聊|服务|代理)?|90 (?:足球投注|地下钱庄|曾道人|六合彩).{0,20}(?:开户|下注|投注|联系|私聊)?|95 + +# AI 订阅虚拟卡/扣款卡广告 +(?:虚拟卡|卡台|专用卡|开卡|绑卡|扣款).{0,32}(?:Claude|OpenAI|ChatGPT|AI\s*订阅|AI订阅|订阅|验证)|95 +(?:Claude|OpenAI|ChatGPT|AI\s*订阅|AI订阅).{0,32}(?:虚拟卡|卡台|专用卡|开卡|绑卡|稳定支持|丝滑)|95 +(?:虚拟卡|专用卡).{0,24}(?:丝滑扣款|稳定扣款|扣款\s*\d+\s*-\s*\d+\s*(?:刀|美元|美金)|5\s*-\s*20\s*刀)|90 + diff --git a/services/spam_detector.py b/services/spam_detector.py index 8e7055f..337f507 100644 --- a/services/spam_detector.py +++ b/services/spam_detector.py @@ -302,7 +302,7 @@ def local_classify(text: str) -> tuple[bool | None, str, int]: return False, f"正常规则命中: {names}", spam_score - normal_score # 长文本或命中弱灰产/引流信号时交给 AI,避免 0 分直接放过混淆广告 - weak_ai_signal = re.search(r"黑\s*[uU]|交易所|项木|项目|带人|直\s*接\s*联系|联系|名额|先到先得|简介|简界|主页|日赚|日入|一天|万\s*\+|w\s*\+", norm, re.IGNORECASE) + weak_ai_signal = re.search(r"黑\s*[uU]|交易所|项木|项目|带人|直\s*接\s*联系|联系|名额|先到先得|简介|简界|主页|日赚|日入|一天|万\s*\+|w\s*\+|虚拟卡|卡台|专用卡|开卡|绑卡|扣款|AI\s*订阅|Claude|OpenAI|ChatGPT", norm, re.IGNORECASE) if spam_score == 0 and (weak_ai_signal or len(norm) >= 80): return None, "本地无强规则,进入AI兜底", 0