Files
argon-theme/.kiro/specs/ai-spam-detection-optimization/tasks.md
nanhaoluo 28f0a1265e feat: 更新 Mermaid 到 v11 并优化错误处理
- 更新 Mermaid 库版本从 v10 升级到 v11.12.2
- 优化错误处理逻辑,避免重复嵌套错误容器
- 修复查看源代码时可能出现的嵌套报错问题
- 改进渲染前检查,跳过已处理的错误容器和已渲染的图表
- 优化重新渲染逻辑,只处理成功渲染的图表,排除错误容器
- 增强代码提取逻辑,优先使用传入的代码参数
- 添加主题切换时的智能判断,避免不必要的重新渲染
- 更新 functions.php 中的 CDN 地址到 v11
- 更新 settings.php 中的预览功能 CDN 地址到 v11
- 改进错误容器的 DOM 结构,使用独立元素而非 innerHTML
2026-01-24 22:46:00 +08:00

408 lines
16 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.
# 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 集成
- 性能测试确保系统满足响应时间和资源使用要求