From ff28a35a4795924e69ee29404a515d807562ea6c Mon Sep 17 00:00:00 2001 From: ngfchl Date: Tue, 7 Jul 2026 23:34:32 +0800 Subject: [PATCH] fix: force ai check in spam tester --- web/api.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/web/api.py b/web/api.py index 5588eda..a9e004d 100644 --- a/web/api.py +++ b/web/api.py @@ -782,8 +782,15 @@ async def api_spam_test(data: SpamTestPayload): "rule_counts": {"keywords": len(spam_detector.EXTERNAL_KEYWORD_RULES), "regex": len(spam_detector.EXTERNAL_REGEX_RULES), "adblock_domains": len(spam_detector.ADBLOCK_DOMAINS)}, } if use_ai: - ai_is_spam, ai_reason = await spam_detector.detect(text) - result.update({"ai_is_spam": ai_is_spam, "ai_reason": ai_reason, "final_is_spam": ai_is_spam}) + if decision is True: + result.update({"ai_is_spam": None, "ai_reason": "本地强规则已判定为垃圾,未额外调用 AI", "final_is_spam": True}) + else: + ai_is_spam, ai_reason = await spam_detector.ai_classify(text) + final_is_spam = True if ai_is_spam else (bool(decision) if decision is not None else False) + if ai_is_spam and score < 75: + result["score"] = 80 + result["reason"] = f"{reason}; AI加权判定" + result.update({"ai_is_spam": ai_is_spam, "ai_reason": ai_reason, "final_is_spam": final_is_spam}) else: result["final_is_spam"] = bool(decision) if decision is not None else None return JSONResponse(result)