Files
argon-theme/docs/ai-spam-detection-architecture.md
nanhaoluo b0557d9a2a fix: 修复 AI 垃圾评论检测架构文档中的 Mermaid 语法错误
- 移除 subgraph 标签中的引号,避免解析错误

- 将体育场形状节点 ([]) 改为普通方形节点 []

- 确保所有 Mermaid 图表语法兼容 v11 版本
2026-01-24 23:08:31 +08:00

345 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AI 垃圾评论检测系统架构
## 系统概述
本文档展示 Argon 主题的 AI 垃圾评论检测系统的完整架构和流程。
## 主流程图
```mermaid
flowchart TD
Start[用户提交评论]
PreProcess[预处理评论]
CheckEnabled{启用 AI 检测?}
DirectSave[直接保存评论]
CheckMode{检测模式?}
CheckKeyword[检查关键字]
CheckSample[智能抽样]
NeedCheck[需要检测]
KeywordMatch{匹配关键字?}
SampleDecision{抽中?}
SetPending[设置待审核状态]
SaveWithFlag[保存评论并标记]
TriggerDetect[触发 AI 检测]
CallAPI[调用 AI API]
ParseResult[解析结果]
CheckConfidence{置信度?}
AutoHandle[自动处理]
ManualReview[人工审核]
MarkNormal[标记正常]
CheckAction{处理方式?}
MoveTrash[移入回收站]
KeepPending[保持待审核]
JustMark[仅标记]
NotifyAdmin[通知管理员]
SaveResult[保存结果]
AILearn{启用学习?}
ExtractKeywords[提取关键词]
UpdateDB[更新词库]
End[结束]
Start --> PreProcess
PreProcess --> CheckEnabled
CheckEnabled -->|否| DirectSave
CheckEnabled -->|是| CheckMode
CheckMode -->|manual| DirectSave
CheckMode -->|keyword| CheckKeyword
CheckMode -->|sample| CheckSample
CheckMode -->|all| NeedCheck
CheckKeyword --> KeywordMatch
KeywordMatch -->|是| NeedCheck
KeywordMatch -->|否| DirectSave
CheckSample --> SampleDecision
SampleDecision -->|是| NeedCheck
SampleDecision -->|否| DirectSave
NeedCheck --> SetPending
SetPending --> SaveWithFlag
SaveWithFlag --> TriggerDetect
TriggerDetect --> CallAPI
CallAPI --> ParseResult
ParseResult --> CheckConfidence
CheckConfidence -->|高| AutoHandle
CheckConfidence -->|中| ManualReview
CheckConfidence -->|低| MarkNormal
AutoHandle --> CheckAction
CheckAction -->|trash| MoveTrash
CheckAction -->|hold| KeepPending
CheckAction -->|mark| JustMark
MoveTrash --> NotifyAdmin
KeepPending --> NotifyAdmin
JustMark --> SaveResult
ManualReview --> SaveResult
MarkNormal --> SaveResult
NotifyAdmin --> SaveResult
SaveResult --> AILearn
AILearn -->|是| ExtractKeywords
AILearn -->|否| End
ExtractKeywords --> UpdateDB
UpdateDB --> End
DirectSave --> End
style Start fill:#e1f5e1,stroke:#2e7d32,stroke-width:2px
style End fill:#e1f5e1,stroke:#2e7d32,stroke-width:2px
style MoveTrash fill:#ff6b6b,stroke:#c62828,stroke-width:2px
style MarkNormal fill:#95e1d3,stroke:#2e7d32,stroke-width:2px
style ManualReview fill:#ffa500,stroke:#ff8f00,stroke-width:2px
```
## 检测模式详解
```mermaid
flowchart LR
subgraph Manual[Manual 模式]
M1[关闭实时检测]
M2[仅手动扫描]
end
subgraph Keyword[Keyword 模式]
K1[关键字触发]
K2[精准检测]
K3[低成本]
end
subgraph Sample[Sample 模式]
S1[智能抽样]
S2[平衡准确性]
S3[控制成本]
end
subgraph All[All 模式]
A1[全量检测]
A2[最高准确性]
A3[高成本]
end
style Manual fill:#e3f2fd
style Keyword fill:#fff3e0
style Sample fill:#f3e5f5
style All fill:#fce4ec
```
## AI 检测流程
```mermaid
sequenceDiagram
participant User as 用户
participant WP as WordPress
participant Argon as Argon 主题
participant AI as AI API
participant DB as 数据库
User->>WP: 提交评论
WP->>Argon: 触发 preprocess_comment
Argon->>Argon: 检查检测规则
alt 需要检测
Argon->>DB: 保存评论(待审核)
Argon->>AI: 发送检测请求
AI-->>Argon: 返回检测结果
Argon->>Argon: 解析结果和置信度
alt 高置信度垃圾评论
Argon->>DB: 移入回收站
Argon->>WP: 发送通知邮件
else 中等置信度
Argon->>DB: 标记待人工审核
else 正常评论
Argon->>DB: 标记为正常
end
Argon->>DB: 保存检测记录
opt 启用 AI 学习
Argon->>AI: 提取关键词
AI-->>Argon: 返回关键词
Argon->>DB: 更新学习词库
end
else 跳过检测
Argon->>DB: 直接保存评论
end
WP-->>User: 显示提交结果
```
## 数据库结构
```mermaid
erDiagram
COMMENT ||--o{ COMMENT_META : has
COMMENT {
bigint comment_ID PK
bigint comment_post_ID FK
text comment_content
varchar comment_author
varchar comment_author_email
varchar comment_author_IP
datetime comment_date
varchar comment_approved
}
COMMENT_META {
bigint meta_id PK
bigint comment_id FK
varchar meta_key
longtext meta_value
}
SPAM_DETECTION ||--|| COMMENT : detects
SPAM_DETECTION {
bigint id PK
bigint comment_id FK
varchar result
float confidence
text reason
text keywords
datetime detected_at
varchar detection_code
}
LEARNED_KEYWORDS ||--o{ SPAM_DETECTION : learns_from
LEARNED_KEYWORDS {
bigint id PK
varchar keyword
int weight
varchar category
datetime created_at
datetime updated_at
}
```
## 系统状态机
```mermaid
stateDiagram-v2
[*] --> Submitted: 用户提交
Submitted --> Pending: 需要检测
Submitted --> Approved: 跳过检测
Pending --> Detecting: 开始检测
Detecting --> Analyzed: 检测完成
Analyzed --> Spam: 高置信度垃圾
Analyzed --> Suspicious: 中等置信度
Analyzed --> Clean: 低置信度/正常
Spam --> Trash: 自动处理
Spam --> Hold: 保持待审核
Spam --> Marked: 仅标记
Suspicious --> ManualReview: 等待人工审核
Clean --> Approved: 自动通过
ManualReview --> Approved: 管理员批准
ManualReview --> Trash: 管理员拒绝
Hold --> Approved: 管理员批准
Hold --> Trash: 管理员拒绝
Marked --> Approved: 管理员批准
Marked --> Trash: 管理员拒绝
Trash --> [*]
Approved --> [*]
note right of Detecting
调用 AI API
解析返回结果
计算置信度
end note
note right of ManualReview
显示在后台
等待管理员操作
end note
```
## 性能优化策略
```mermaid
flowchart TD
subgraph Input[输入优化]
I1[关键字预过滤]
I2[白名单用户]
I3[智能抽样]
end
subgraph Process[处理优化]
P1[异步检测]
P2[批量处理]
P3[缓存结果]
end
subgraph API[API 优化]
A1[Prompt 优化]
A2[Token 控制]
A3[超时处理]
end
subgraph Storage[存储优化]
S1[索引优化]
S2[定期清理]
S3[归档历史]
end
Input --> Process
Process --> API
API --> Storage
style Input fill:#e8f5e9
style Process fill:#e3f2fd
style API fill:#fff3e0
style Storage fill:#f3e5f5
```
## 关键技术点
### 1. 异步检测机制
- 评论提交后立即返回,不阻塞用户
- 后台异步调用 AI API 进行检测
- 使用 WordPress Cron 或队列系统
### 2. 智能抽样算法
- 基于用户历史行为的动态抽样率
- 新用户抽样率更高
- 可信用户抽样率降低
### 3. 置信度评分系统
- 0.9-1.0:非常确定,可自动处理
- 0.7-0.9:比较确定,建议自动处理
- 0.5-0.7:中等确定,建议人工审核
- 0.0-0.5:不太确定,必须人工审核
### 4. 学习优化机制
- 记录管理员的审核决策
- 分析误判模式
- 自动调整检测策略
- 提取高频垃圾关键词
### 5. 容错与降级
- API 失败时自动降级
- 保证评论系统正常运行
- 记录错误日志供后续分析
## 配置建议
### 小型博客(< 100 评论/天)
- 检测模式Sample30%
- Prompt 模式Standard
- 自动处理阈值0.9
- 异步检测:启用
### 中型博客100-500 评论/天)
- 检测模式Sample40%
- Prompt 模式Standard
- 自动处理阈值0.85
- 异步检测:启用
- 批量扫描:每日一次
### 大型博客(> 500 评论/天)
- 检测模式Keyword + Sample50%
- Prompt 模式Minimal
- 自动处理阈值0.8
- 异步检测:启用
- 批量扫描:每日两次
- 启用缓存和队列优化