- 更新 Mermaid 库版本从 v10 升级到 v11.12.2 - 优化错误处理逻辑,避免重复嵌套错误容器 - 修复查看源代码时可能出现的嵌套报错问题 - 改进渲染前检查,跳过已处理的错误容器和已渲染的图表 - 优化重新渲染逻辑,只处理成功渲染的图表,排除错误容器 - 增强代码提取逻辑,优先使用传入的代码参数 - 添加主题切换时的智能判断,避免不必要的重新渲染 - 更新 functions.php 中的 CDN 地址到 v11 - 更新 settings.php 中的预览功能 CDN 地址到 v11 - 改进错误容器的 DOM 结构,使用独立元素而非 innerHTML
16 KiB
Implementation Plan: AI 垃圾评论检测优化
Overview
本实施计划将 AI 垃圾评论检测功能从基础版本升级为具有多级 Prompt、置信度评分、智能处理建议和学习机制的完整系统。实施采用模块化方式,每个核心组件独立开发和测试,最后进行集成。
实施策略:
- 先实现核心组件(Prompt_Engine, Context_Builder, AI_Detector)
- 再实现辅助组件(Learning_Module, Threshold_Manager)
- 然后实现数据库和设置界面
- 最后进行集成测试和优化
Tasks
-
1. 数据库表创建和初始化
- 创建反馈数据表
{prefix}_argon_spam_feedback - 添加必要的索引(comment_id, created_at, is_error)
- 实现数据库升级函数,在主题激活时自动创建表
- Requirements: 5.1, 5.2
- 创建反馈数据表
-
2. 实现 Prompt_Engine 核心功能
-
2.1 创建 Argon_Spam_Prompt_Engine 类
- 实现 get_prompt() 方法,支持三种预设模式
- 实现 get_custom_template() 和 save_custom_template() 方法
- 实现 validate_template() 方法验证模板格式
- Requirements: 1.1, 1.5, 1.6
-
* 2.2 编写 Prompt_Engine 属性测试
- Property 1: Prompt 模式完整性
- Validates: Requirements 1.1, 1.6
-
* 2.3 编写 Prompt_Engine 属性测试
- Property 2: Token 消耗范围约束
- Validates: Requirements 1.2, 1.3, 1.4
-
* 2.4 编写 Prompt_Engine 属性测试
- Property 3: 自定义模板往返一致性
- Validates: Requirements 1.5
-
* 2.5 编写 Prompt_Engine 单元测试
- 测试三种预设模式的 Prompt 生成
- 测试自定义模板的保存和读取
- 测试模板验证功能(有效和无效模板)
- 测试边缘情况(空模板、超长模板、特殊字符)
- Requirements: 1.1, 1.5, 1.6
-
-
3. 实现 Context_Builder 核心功能
-
3.1 创建 Argon_Spam_Context_Builder 类
- 实现 build_context() 方法收集评论上下文
- 实现 get_post_info() 方法获取文章信息
- 实现 get_user_stats() 方法获取用户历史统计
- 实现 sanitize_context() 方法进行隐私脱敏
- 添加缓存机制优化用户历史查询性能
- Requirements: 4.1, 4.2, 4.3, 4.5, 9.6
-
* 3.2 编写 Context_Builder 属性测试
- Property 9: 上下文数据完整性
- Validates: Requirements 4.1, 4.2, 4.3
-
* 3.3 编写 Context_Builder 属性测试
- Property 10: 上下文传递正确性
- Validates: Requirements 4.4
-
* 3.4 编写 Context_Builder 属性测试
- Property 11: 敏感信息脱敏正确性
- Validates: Requirements 4.5, 10.1, 10.2
-
* 3.5 编写 Context_Builder 属性测试
- Property 12: 摘要截取正确性
- Validates: Requirements 4.6
-
* 3.6 编写 Context_Builder 单元测试
- 测试文章信息获取(存在和不存在的文章)
- 测试用户历史统计(有历史和无历史的用户)
- 测试隐私脱敏(标准和严格模式)
- 测试摘要截取(短摘要和长摘要)
- 测试缓存机制(重复查询应使用缓存)
- Requirements: 4.1, 4.2, 4.3, 4.5, 4.6, 9.6
-
-
4. 实现 Threshold_Manager 核心功能
-
4.1 创建 Argon_Spam_Threshold_Manager 类
- 实现 get_threshold() 和 set_threshold() 方法
- 实现 should_auto_process() 方法判断是否自动处理
- 实现 get_recommended_config() 方法提供推荐配置
- Requirements: 3.5, 6.6
-
* 4.2 编写 Threshold_Manager 属性测试
- Property 6: 处理建议逻辑正确性
- Validates: Requirements 3.2, 3.3, 3.4
-
* 4.3 编写 Threshold_Manager 属性测试
- Property 7: 阈值配置往返一致性
- Validates: Requirements 3.5
-
* 4.4 编写 Threshold_Manager 单元测试
- 测试阈值的保存和读取
- 测试自动处理判断逻辑(各种置信度和阈值组合)
- 测试推荐配置(小型、中型、大型博客)
- 测试边界值(阈值 0.5, 0.85, 1.0)
- Requirements: 3.2, 3.3, 3.4, 3.5, 6.6
-
-
5. 实现 AI_Detector 主控制器
-
5.1 创建 Argon_Spam_AI_Detector 类
- 实现 detect() 方法协调检测流程
- 实现 process_result() 方法处理检测结果
- 实现 batch_detect() 方法批量检测评论
- 实现 test_prompt() 方法测试 Prompt 效果
- 集成 Prompt_Engine、Context_Builder、Threshold_Manager
- 实现异步检测机制(使用 WordPress Cron 或 Action Scheduler)
- Requirements: 2.1, 2.2, 3.1, 9.1, 9.2, 9.3, 9.4
-
* 5.2 编写 AI_Detector 属性测试
- Property 4: 检测结果数据结构完整性
- Validates: Requirements 2.1, 2.2, 3.1
-
* 5.3 编写 AI_Detector 属性测试
- Property 5: 置信度分类正确性
- Validates: Requirements 2.3, 2.4, 2.5, 2.6
-
* 5.4 编写 AI_Detector 属性测试
- Property 8: 评论处理状态正确性
- Validates: Requirements 3.6, 3.7, 3.8
-
* 5.5 编写 AI_Detector 单元测试
- 测试检测流程(同步和异步模式)
- 测试结果处理(auto、review、approve 三种建议)
- 测试批量检测(小批量和大批量)
- 测试 Prompt 测试功能
- 测试错误处理(API 超时、返回错误等)
- Requirements: 2.1, 2.2, 3.1, 3.6, 3.7, 3.8, 9.1, 9.2, 9.3, 9.4
-
-
6. Checkpoint - 核心组件测试
- 确保所有核心组件测试通过,询问用户是否有问题
-
7. 实现 API 错误处理机制
-
7.1 实现错误处理和自动禁用功能
- 实现连接超时处理(30 秒超时)
- 实现错误状态码处理(4xx、5xx、429)
- 实现响应格式错误处理(JSON 解析失败、字段缺失)
- 实现自动禁用机制(连续失败 N 次后禁用 M 分钟)
- 实现手动恢复功能
- 实现错误日志记录(最多保留 10 条)
- Requirements: 8.1, 8.2, 8.3, 8.4, 8.5, 8.6
-
* 7.2 编写 API 错误处理属性测试
- Property 18: API 错误默认值正确性
- Validates: Requirements 8.1, 8.2
-
* 7.3 编写 API 错误处理属性测试
- Property 19: 自动禁用机制正确性
- Validates: Requirements 8.3
-
* 7.4 编写 API 错误处理属性测试
- Property 20: 错误日志容量限制
- Validates: Requirements 8.4
-
* 7.5 编写 API 错误处理属性测试
- Property 21: 自动恢复机制正确性
- Validates: Requirements 8.5
-
* 7.6 编写 API 错误处理属性测试
- Property 22: 手动恢复功能正确性
- Validates: Requirements 8.6
-
* 7.7 编写 API 错误处理单元测试
- 测试各种错误场景(超时、4xx、5xx、429、格式错误)
- 测试自动禁用触发和恢复
- 测试手动恢复功能
- 测试错误日志记录和容量限制
- Requirements: 8.1, 8.2, 8.3, 8.4, 8.5, 8.6
-
-
8. 实现性能优化功能
-
8.1 实现异步检测和批量扫描
- 优化异步检测流程(使用 WordPress Cron 或 Action Scheduler)
- 实现批量扫描队列机制(避免 API 速率限制)
- 实现进度回调和状态更新
- 优化数据库查询(使用缓存和批量查询)
- Requirements: 9.1, 9.2, 9.3, 9.4, 9.5, 9.6
-
* 8.2 编写性能优化属性测试
- Property 23: 异步检测非阻塞性
- Validates: Requirements 9.1
-
* 8.3 编写性能优化属性测试
- Property 24: 状态更新正确性
- Validates: Requirements 9.3
-
* 8.4 编写性能优化属性测试
- Property 25: 批量扫描完整性
- Validates: Requirements 9.4
-
* 8.5 编写性能优化属性测试
- Property 26: 队列限速正确性
- Validates: Requirements 9.5
-
* 8.6 编写性能优化属性测试
- Property 27: 缓存一致性
- Validates: Requirements 9.6
-
* 8.7 编写性能优化单元测试
- 测试异步检测(评论提交响应时间 < 100ms)
- 测试批量扫描(100 条评论 < 5 分钟)
- 测试队列限速(每秒最多 N 次调用)
- 测试缓存机制(重复查询使用缓存)
- Requirements: 9.1, 9.2, 9.3, 9.4, 9.5, 9.6
-
-
9. 实现 Learning_Module 学习机制
-
9.1 创建 Argon_Spam_Learning_Module 类
- 实现 record_feedback() 方法记录反馈
- 实现 calculate_error_rate() 方法计算误判率
- 实现 get_optimization_suggestions() 方法生成优化建议
- 实现 export_feedback() 方法导出反馈数据
- 实现 get_statistics() 方法获取统计数据
- Requirements: 5.1, 5.2, 5.3, 5.4, 5.5, 5.6
-
* 9.2 编写 Learning_Module 属性测试
- Property 13: 反馈记录完整性
- Validates: Requirements 5.1, 5.2
-
* 9.3 编写 Learning_Module 属性测试
- Property 14: 误判率计算正确性
- Validates: Requirements 5.3
-
* 9.4 编写 Learning_Module 属性测试
- Property 15: 优化建议触发正确性
- Validates: Requirements 5.4
-
* 9.5 编写 Learning_Module 属性测试
- Property 16: 反馈数据导出格式正确性
- Validates: Requirements 5.5
-
* 9.6 编写 Learning_Module 属性测试
- Property 17: 统计数据准确性
- Validates: Requirements 5.6
-
* 9.7 编写 Learning_Module 单元测试
- 测试反馈记录(各种管理员操作)
- 测试误判率计算(不同数据集)
- 测试优化建议生成(误判率 > 30%)
- 测试反馈数据导出(CSV 格式)
- 测试统计数据获取(准确性验证)
- Requirements: 5.1, 5.2, 5.3, 5.4, 5.5, 5.6
-
-
10. Checkpoint - 辅助组件测试
- 确保所有辅助组件测试通过,询问用户是否有问题
-
11. 实现隐私保护功能
-
11.1 实现数据脱敏和隐私保护
- 在 Context_Builder 中实现邮箱脱敏(仅保留域名)
- 在 Context_Builder 中实现 IP 脱敏(仅保留前两段)
- 实现隐私级别配置(标准/严格)
- 在严格模式下不发送任何用户标识信息
- Requirements: 10.1, 10.2, 10.3, 10.4, 10.5
-
* 11.2 编写隐私保护属性测试
- Property 28: 隐私保护完整性
- Validates: Requirements 10.3, 10.5
-
* 11.3 编写隐私保护属性测试
- Property 29: 隐私级别配置往返一致性
- Validates: Requirements 10.4
-
* 11.4 编写隐私保护单元测试
- 测试邮箱脱敏(标准和严格模式)
- 测试 IP 脱敏(标准和严格模式)
- 测试隐私级别配置保存和读取
- 测试严格模式下不发送用户标识信息
- Requirements: 10.1, 10.2, 10.3, 10.4, 10.5
-
-
12. 实现设置界面
-
12.1 创建设置页面 UI
- 添加 Prompt 模式选择下拉框(极简/标准/增强/自定义)
- 添加自定义 Prompt 编辑器(仅在自定义模式下显示)
- 添加检测阈值滑块(0.5-1.0,步长 0.05)
- 添加智能抽查比例设置(0-100%)
- 添加隐私级别选择(标准/严格)
- 添加 API 配置(提供商、密钥、端点)
- 显示当前月份 API 调用统计和预估费用
- 添加"测试 Prompt"功能(输入示例评论测试效果)
- 提供不同博客规模的推荐配置模板
- 显示最近的 API 错误日志(最多 10 条)
- 添加"手动重试"按钮恢复检测
- Requirements: 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 8.4, 8.6
-
12.2 实现设置保存和验证
- 实现设置保存逻辑(使用 WordPress Options API)
- 实现设置验证(阈值范围、模式有效性等)
- 实现测试 Prompt 功能(调用 AI_Detector.test_prompt())
- 实现推荐配置应用功能
- 实现手动重试功能
- Requirements: 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 8.6
-
* 12.3 编写设置界面单元测试
- 测试设置保存和读取
- 测试设置验证(有效和无效值)
- 测试测试 Prompt 功能
- 测试推荐配置应用
- 测试手动重试功能
- Requirements: 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 8.6
-
-
13. 实现后台显示增强
-
13.1 增强评论列表显示
- 在评论列表添加置信度标签(不同颜色表示不同等级)
- 实现鼠标悬停显示详细分析原因
- 在评论详情页显示完整 AI 分析报告
- 添加"重新检测"按钮(支持选择不同模式)
- 在管理员操作后显示"反馈已记录"提示
- Requirements: 7.1, 7.2, 7.3, 7.4, 7.5, 7.6
-
13.2 集成 Learning_Module 反馈记录
- 在管理员批准/拒绝评论时调用 Learning_Module.record_feedback()
- 在评论列表显示反馈状态
- 在设置页面显示准确率统计
- Requirements: 5.1, 5.6, 7.6
-
* 13.3 编写后台显示单元测试
- 测试置信度标签显示(各种置信度值)
- 测试详细分析显示
- 测试重新检测功能
- 测试反馈记录集成
- Requirements: 7.1, 7.2, 7.3, 7.4, 7.5, 7.6
-
-
14. Checkpoint - UI 和集成测试
- 确保所有 UI 和集成功能正常工作,询问用户是否有问题
-
15. 集成 WordPress 钩子
-
15.1 集成评论提交钩子
- 在
pre_comment_approved钩子中调用 AI_Detector.detect() - 根据检测结果决定评论状态(auto/review/approve)
- 实现智能抽查逻辑(根据配置的抽查比例)
- Requirements: 3.6, 3.7, 3.8, 6.3, 9.1, 9.2
- 在
-
15.2 集成评论管理钩子
- 在
wp_set_comment_status钩子中调用 Learning_Module.record_feedback() - 在
edit_comment钩子中更新检测结果 - Requirements: 5.1, 7.6
- 在
-
15.3 集成主题激活钩子
- 在主题激活时创建数据库表
- 初始化默认配置
- Requirements: 5.1
-
* 15.4 编写 WordPress 集成测试
- 测试评论提交流程(各种检测结果)
- 测试评论状态更新
- 测试反馈记录
- 测试主题激活初始化
- Requirements: 3.6, 3.7, 3.8, 5.1, 9.1, 9.2
-
-
16. 性能测试和优化
-
* 16.1 运行性能测试
- 测试评论提交响应时间(目标 < 100ms)
- 测试同步检测响应时间(目标 < 3s)
- 测试批量扫描性能(100 条评论 < 5 分钟)
- 测试并发评论提交(10 个并发)
- 测试内存使用(批量扫描 1000 条评论 < 256MB)
- Requirements: 9.1, 9.2, 9.4
-
16.2 优化性能瓶颈
- 根据性能测试结果优化慢速代码
- 优化数据库查询(添加索引、使用缓存)
- 优化 API 调用(批量处理、限速)
- Requirements: 9.4, 9.5, 9.6
-
-
17. 文档和用户指南
-
17.1 编写开发文档
- 编写 API 文档(所有公共方法)
- 编写架构文档(组件关系和数据流)
- 编写测试文档(如何运行测试)
- 编写贡献指南(如何添加新功能)
-
17.2 编写用户指南
- 编写设置指南(如何配置各项参数)
- 编写使用指南(如何使用各项功能)
- 编写故障排除指南(常见问题和解决方案)
- 编写最佳实践指南(不同博客规模的推荐配置)
-
-
18. 最终集成测试
-
* 18.1 运行完整测试套件
- 运行所有单元测试
- 运行所有属性测试(100 次迭代)
- 运行所有集成测试
- 运行性能测试
- 生成代码覆盖率报告(目标 > 80%)
-
18.2 手动测试关键流程
- 测试评论提交和检测流程
- 测试管理员审核和反馈记录
- 测试批量扫描功能
- 测试设置界面和配置保存
- 测试错误处理和自动禁用
- 测试隐私保护功能
-
-
19. Final Checkpoint - 完整功能验证
- 确保所有功能正常工作,所有测试通过,询问用户是否准备发布
Notes
- 任务标记
*的为可选测试任务,可根据项目进度决定是否实施 - 每个任务都引用了相关的需求编号,便于追溯
- Checkpoint 任务用于阶段性验证,确保增量开发的质量
- 属性测试使用 PHPUnit + Eris 或 Pest + Pest Property Testing Plugin
- 每个属性测试最少运行 100 次迭代
- 单元测试关注具体示例、边缘情况和错误条件
- 集成测试验证组件之间的协作和 WordPress 集成
- 性能测试确保系统满足响应时间和资源使用要求