# Requirements Document

## Introduction

本文档定义了 Argon 主题 AI 垃圾评论检测功能的优化需求。当前系统已实现基础的 AI 检测功能，但在灵活性、准确性和成本控制方面存在不足。本次优化旨在通过引入多级 Prompt 系统、置信度评分、智能处理建议和学习机制，提升检测准确率并降低误判率。

## Glossary

- **AI_Detector**: AI 垃圾评论检测系统
- **Prompt_Engine**: Prompt 生成和管理引擎
- **Confidence_Score**: 置信度评分，范围 0-1，表示 AI 判断的确定性
- **Processing_Suggestion**: 处理建议，包括 auto（自动处理）、review（人工审核）、approve（直接通过）
- **Context_Builder**: 上下文信息构建器，收集评论相关的文章、用户历史等信息
- **Learning_Module**: 学习模块，记录和分析管理员审核决策
- **Detection_Threshold**: 检测阈值，用于判断是否自动处理的置信度临界值
- **Comment_Context**: 评论上下文，包括文章信息、用户历史、时间戳等
- **Feedback_Record**: 反馈记录，存储 AI 判断和管理员决策的对比数据

## Requirements

### Requirement 1: 多级 Prompt 系统

**User Story:** 作为博客管理员，我希望能够选择不同的检测模式，以便在准确性和 API 成本之间取得平衡。

#### Acceptance Criteria

1. THE Prompt_Engine SHALL 提供三种预设模式：极简模式（minimal）、标准模式（standard）、增强模式（enhanced）
2. WHEN 管理员选择极简模式 THEN THE Prompt_Engine SHALL 生成 token 消耗约 100-150 的 Prompt
3. WHEN 管理员选择标准模式 THEN THE Prompt_Engine SHALL 生成 token 消耗约 200-300 的 Prompt
4. WHEN 管理员选择增强模式 THEN THE Prompt_Engine SHALL 生成 token 消耗约 300-500 的 Prompt
5. WHERE 管理员选择自定义模式 THE Prompt_Engine SHALL 允许管理员编辑自定义 Prompt 模板
6. THE Prompt_Engine SHALL 在每个 Prompt 中包含明确的输出格式要求（JSON 格式）

### Requirement 2: 置信度评分系统

**User Story:** 作为博客管理员，我希望 AI 能够提供置信度评分，以便我了解判断的可靠性并做出相应决策。

#### Acceptance Criteria

1. WHEN AI_Detector 分析评论 THEN THE AI_Detector SHALL 返回 0-1 范围的 Confidence_Score
2. THE AI_Detector SHALL 在返回结果中包含 is_spam（布尔值）、confidence（浮点数）、reason（字符串）三个字段
3. WHEN Confidence_Score >= 0.9 THEN THE AI_Detector SHALL 标记为"非常确定"
4. WHEN 0.7 <= Confidence_Score < 0.9 THEN THE AI_Detector SHALL 标记为"比较确定"
5. WHEN 0.5 <= Confidence_Score < 0.7 THEN THE AI_Detector SHALL 标记为"中等确定"
6. WHEN Confidence_Score < 0.5 THEN THE AI_Detector SHALL 标记为"不太确定"

### Requirement 3: 智能处理建议

**User Story:** 作为博客管理员，我希望系统能够根据置信度自动决定处理方式，以便减少人工审核工作量。

#### Acceptance Criteria

1. THE AI_Detector SHALL 在返回结果中包含 Processing_Suggestion 字段
2. WHEN Confidence_Score >= Detection_Threshold AND is_spam = true THEN THE AI_Detector SHALL 返回 suggestion = "auto"
3. WHEN 0.5 <= Confidence_Score < Detection_Threshold AND is_spam = true THEN THE AI_Detector SHALL 返回 suggestion = "review"
4. WHEN Confidence_Score < 0.5 OR is_spam = false THEN THE AI_Detector SHALL 返回 suggestion = "approve"
5. THE AI_Detector SHALL 允许管理员在设置中配置 Detection_Threshold（默认值 0.85）
6. WHEN suggestion = "auto" THEN THE AI_Detector SHALL 自动将评论标记为垃圾或移至回收站
7. WHEN suggestion = "review" THEN THE AI_Detector SHALL 将评论标记为待审核状态
8. WHEN suggestion = "approve" THEN THE AI_Detector SHALL 允许评论正常发布并记录低置信度日志

### Requirement 4: 上下文信息增强

**User Story:** 作为博客管理员，我希望 AI 能够结合文章内容和用户历史进行判断，以便提高检测准确性。

#### Acceptance Criteria

1. THE Context_Builder SHALL 收集评论所属文章的标题和摘要
2. THE Context_Builder SHALL 收集评论者的历史评论数量和通过率
3. THE Context_Builder SHALL 收集评论的时间戳和 IP 地址
4. WHEN 构建检测请求 THEN THE Context_Builder SHALL 将 Comment_Context 包含在 Prompt 中
5. THE Context_Builder SHALL 对敏感信息（如完整邮箱）进行脱敏处理
6. WHERE 文章摘要超过 200 字符 THE Context_Builder SHALL 截取前 200 字符

### Requirement 5: 学习优化机制

**User Story:** 作为博客管理员，我希望系统能够从我的审核决策中学习，以便不断优化检测准确性。

#### Acceptance Criteria

1. WHEN 管理员批准或拒绝 AI 标记的评论 THEN THE Learning_Module SHALL 记录 Feedback_Record
2. THE Feedback_Record SHALL 包含 AI 判断结果、管理员决策、时间戳、评论特征哈希
3. THE Learning_Module SHALL 定期分析 Feedback_Record 计算误判率
4. WHEN 某类型评论的误判率 > 30% THEN THE Learning_Module SHALL 在管理后台显示优化建议
5. THE Learning_Module SHALL 提供"导出反馈数据"功能用于分析
6. THE Learning_Module SHALL 在设置页面显示当前的准确率统计（总检测数、自动处理数、误判数）

### Requirement 6: 设置界面优化

**User Story:** 作为博客管理员，我希望有清晰的设置界面来配置检测参数，以便根据博客规模调整策略。

#### Acceptance Criteria

1. THE AI_Detector SHALL 在设置页面提供 Prompt 模式选择下拉框
2. THE AI_Detector SHALL 在设置页面提供 Detection_Threshold 滑块（范围 0.5-1.0，步长 0.05）
3. THE AI_Detector SHALL 在设置页面提供"智能抽查比例"设置（范围 0-100%）
4. THE AI_Detector SHALL 在设置页面显示当前月份的 API 调用统计和预估费用
5. THE AI_Detector SHALL 提供"测试 Prompt"功能，允许管理员输入示例评论测试检测效果
6. THE AI_Detector SHALL 在设置页面提供不同博客规模的推荐配置模板

### Requirement 7: 后台显示增强

**User Story:** 作为博客管理员，我希望在评论列表中看到 AI 检测结果的详细信息，以便快速做出审核决策。

#### Acceptance Criteria

1. WHEN 评论被 AI 检测 THEN THE AI_Detector SHALL 在评论列表显示置信度标签
2. THE AI_Detector SHALL 使用不同颜色标识不同置信度等级（红色：>0.9，橙色：0.7-0.9，黄色：0.5-0.7）
3. WHEN 鼠标悬停在置信度标签上 THEN THE AI_Detector SHALL 显示详细的分析原因
4. THE AI_Detector SHALL 在评论详情页显示完整的 AI 分析报告
5. THE AI_Detector SHALL 提供"重新检测"按钮允许管理员使用不同模式重新分析
6. WHEN 管理员批准或拒绝 AI 判断 THEN THE AI_Detector SHALL 显示反馈已记录的提示

### Requirement 8: API 错误处理

**User Story:** 作为博客管理员，我希望系统能够优雅地处理 API 错误，以便在 API 不可用时不影响评论功能。

#### Acceptance Criteria

1. WHEN API 请求失败 THEN THE AI_Detector SHALL 记录错误日志并允许评论正常发布
2. WHEN API 返回格式错误 THEN THE AI_Detector SHALL 使用默认值（is_spam=false, confidence=0, suggestion="approve"）
3. THE AI_Detector SHALL 在连续失败 3 次后自动禁用实时检测 1 小时
4. THE AI_Detector SHALL 在设置页面显示最近的 API 错误日志（最多 10 条）
5. WHEN API 恢复正常 THEN THE AI_Detector SHALL 自动重新启用实时检测
6. THE AI_Detector SHALL 提供"手动重试"按钮允许管理员立即恢复检测

### Requirement 9: 性能优化

**User Story:** 作为博客管理员，我希望 AI 检测不会显著影响评论提交速度，以便保持良好的用户体验。

#### Acceptance Criteria

1. THE AI_Detector SHALL 使用异步方式调用 API，不阻塞评论提交
2. WHEN 实时检测启用 THEN THE AI_Detector SHALL 在评论提交后立即返回"评论已提交，正在审核中"
3. THE AI_Detector SHALL 在 API 响应后更新评论状态（通过或待审核）
4. THE AI_Detector SHALL 提供"批量扫描"功能，允许管理员对现有评论进行批量检测
5. WHEN 批量扫描运行 THEN THE AI_Detector SHALL 使用队列机制避免 API 速率限制
6. THE AI_Detector SHALL 缓存用户历史统计数据，避免重复查询数据库

### Requirement 10: 数据隐私保护

**User Story:** 作为博客管理员，我希望系统在发送数据给 AI 时保护用户隐私，以便符合数据保护法规。

#### Acceptance Criteria

1. THE AI_Detector SHALL 对邮箱地址进行脱敏处理（仅保留域名）
2. THE AI_Detector SHALL 对 IP 地址进行脱敏处理（仅保留前两段）
3. THE AI_Detector SHALL 不发送用户的真实姓名和联系方式
4. THE AI_Detector SHALL 在设置页面提供"数据脱敏级别"选项（标准/严格）
5. WHERE 严格模式启用 THE AI_Detector SHALL 不发送任何用户标识信息
6. THE AI_Detector SHALL 在隐私政策中说明 AI 检测功能的数据使用方式
