# Implementation Plan: AI 垃圾评论检测优化 ## Overview 本实施计划将 AI 垃圾评论检测功能从基础版本升级为具有多级 Prompt、置信度评分、智能处理建议和学习机制的完整系统。实施采用模块化方式,每个核心组件独立开发和测试,最后进行集成。 实施策略: - 先实现核心组件(Prompt_Engine, Context_Builder, AI_Detector) - 再实现辅助组件(Learning_Module, Threshold_Manager) - 然后实现数据库和设置界面 - 最后进行集成测试和优化 ## Tasks - [x] 1. 数据库表创建和初始化 - 创建反馈数据表 `{prefix}_argon_spam_feedback` - 添加必要的索引(comment_id, created_at, is_error) - 实现数据库升级函数,在主题激活时自动创建表 - _Requirements: 5.1, 5.2_ - [x] 2. 实现 Prompt_Engine 核心功能 - [x] 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_ - [x] 3. 实现 Context_Builder 核心功能 - [x] 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_ - [x] 4. 实现 Threshold_Manager 核心功能 - [x] 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_ - [x] 5. 实现 AI_Detector 主控制器 - [x] 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_ - [x] 6. Checkpoint - 核心组件测试 - 确保所有核心组件测试通过,询问用户是否有问题 - [x] 7. 实现 API 错误处理机制 - [x] 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_ - [x] 8. 实现性能优化功能 - [x] 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_ - [x] 9. 实现 Learning_Module 学习机制 - [x] 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_ - [x] 10. Checkpoint - 辅助组件测试 - 确保所有辅助组件测试通过,询问用户是否有问题 - [x] 11. 实现隐私保护功能 - [x] 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_ - [x] 12. 实现设置界面 - [x] 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_ - [x] 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_ - [x] 13. 实现后台显示增强 - [x] 13.1 增强评论列表显示 - 在评论列表添加置信度标签(不同颜色表示不同等级) - 实现鼠标悬停显示详细分析原因 - 在评论详情页显示完整 AI 分析报告 - 添加"重新检测"按钮(支持选择不同模式) - 在管理员操作后显示"反馈已记录"提示 - _Requirements: 7.1, 7.2, 7.3, 7.4, 7.5, 7.6_ - [x] 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_ - [x] 14. Checkpoint - UI 和集成测试 - 确保所有 UI 和集成功能正常工作,询问用户是否有问题 - [x] 15. 集成 WordPress 钩子 - [x] 15.1 集成评论提交钩子 - 在 `pre_comment_approved` 钩子中调用 AI_Detector.detect() - 根据检测结果决定评论状态(auto/review/approve) - 实现智能抽查逻辑(根据配置的抽查比例) - _Requirements: 3.6, 3.7, 3.8, 6.3, 9.1, 9.2_ - [x] 15.2 集成评论管理钩子 - 在 `wp_set_comment_status` 钩子中调用 Learning_Module.record_feedback() - 在 `edit_comment` 钩子中更新检测结果 - _Requirements: 5.1, 7.6_ - [x] 15.3 集成主题激活钩子 - 在主题激活时创建数据库表 - 初始化默认配置 - _Requirements: 5.1_ - [ ]* 15.4 编写 WordPress 集成测试 - 测试评论提交流程(各种检测结果) - 测试评论状态更新 - 测试反馈记录 - 测试主题激活初始化 - _Requirements: 3.6, 3.7, 3.8, 5.1, 9.1, 9.2_ - [x] 16. 性能测试和优化 - [ ]* 16.1 运行性能测试 - 测试评论提交响应时间(目标 < 100ms) - 测试同步检测响应时间(目标 < 3s) - 测试批量扫描性能(100 条评论 < 5 分钟) - 测试并发评论提交(10 个并发) - 测试内存使用(批量扫描 1000 条评论 < 256MB) - _Requirements: 9.1, 9.2, 9.4_ - [x] 16.2 优化性能瓶颈 - 根据性能测试结果优化慢速代码 - 优化数据库查询(添加索引、使用缓存) - 优化 API 调用(批量处理、限速) - _Requirements: 9.4, 9.5, 9.6_ - [x] 17. 文档和用户指南 - [x] 17.1 编写开发文档 - 编写 API 文档(所有公共方法) - 编写架构文档(组件关系和数据流) - 编写测试文档(如何运行测试) - 编写贡献指南(如何添加新功能) - [x] 17.2 编写用户指南 - 编写设置指南(如何配置各项参数) - 编写使用指南(如何使用各项功能) - 编写故障排除指南(常见问题和解决方案) - 编写最佳实践指南(不同博客规模的推荐配置) - [x] 18. 最终集成测试 - [ ]* 18.1 运行完整测试套件 - 运行所有单元测试 - 运行所有属性测试(100 次迭代) - 运行所有集成测试 - 运行性能测试 - 生成代码覆盖率报告(目标 > 80%) - [x] 18.2 手动测试关键流程 - 测试评论提交和检测流程 - 测试管理员审核和反馈记录 - 测试批量扫描功能 - 测试设置界面和配置保存 - 测试错误处理和自动禁用 - 测试隐私保护功能 - [x] 19. Final Checkpoint - 完整功能验证 - 确保所有功能正常工作,所有测试通过,询问用户是否准备发布 ## Notes - 任务标记 `*` 的为可选测试任务,可根据项目进度决定是否实施 - 每个任务都引用了相关的需求编号,便于追溯 - Checkpoint 任务用于阶段性验证,确保增量开发的质量 - 属性测试使用 PHPUnit + Eris 或 Pest + Pest Property Testing Plugin - 每个属性测试最少运行 100 次迭代 - 单元测试关注具体示例、边缘情况和错误条件 - 集成测试验证组件之间的协作和 WordPress 集成 - 性能测试确保系统满足响应时间和资源使用要求