课程审核功能实现总结
✅ 已实现功能
1. 课程状态管理
状态流转:
draft → pending_review → approved/published → published
↘ rejected → draft (修改后重新提交)
状态说明:
draft: 草稿,刚生成或更新后pending_review: 待审核approved: 审核通过(可选中间状态)rejected: 审核拒绝published: 已发布,学生可见
2. 课程同步服务修改
文件: src/services/course_sync_service.py
修改内容:
- 新生成的课程默认状态为
draft - 已发布的课程更新后保持
published状态 - 添加
review_info字段记录审核信息
3. 课程审核 API
文件: opensource/mbe-education/backend/api/course_review_api.py
API 端点:
- ✅
POST /api/courses/{course_id}/submit-review- 提交审核 - ✅
POST /api/courses/{course_id}/approve- 审核通过 - ✅
POST /api/courses/{course_id}/reject- 审核拒绝 - ✅
GET /api/courses/pending-review- 获取待审核列表
4. 课程列表过滤
文件: opensource/mbe-education/scripts/run_simple_api.py
修改内容:
- 默认只返回
status: "published"的课程 - 支持按状态筛选
- 向后兼容(没有状态字段的课程默认为已发布)
🔄 工作流程
自动生成流程
知识库更新
↓
课程同步服务
↓
生成/更新课程 (status: draft)
↓
创建者检查内容
↓
提交审核 (status: pending_review)
↓
管理员审核
├─→ 通过 → 发布 (status: published)
└─→ 拒绝 → 修改 (status: rejected → draft)
API 使用示例
1. 提交审核
POST /api/courses/{course_id}/submit-review
{
"message": "课程已准备就绪,请审核"
}
2. 审核通过
POST /api/courses/{course_id}/approve
{
"reviewer_id": "admin@example.com",
"message": "审核通过,内容质量良好"
}
3. 审核拒绝
POST /api/courses/{course_id}/reject
{
"reviewer_id": "admin@example.com",
"message": "知识点描述过于简单,请完善后重新提交",
"rejection_reason": "content_quality"
}
4. 查询待审核课程
GET /api/courses/pending-review
📊 数据结构
课程状态字段
{
"id": "course_xxx",
"status": "draft",
"review_info": {
"submitted_at": "2026-02-05T10:00:00",
"reviewed_at": null,
"reviewer_id": null,
"review_message": null,
"approved": null,
"rejection_reason": null
}
}
⚙️ 配置选项
自动审核(未来扩展)
AUTO_APPROVE_COURSES = False # 默认关闭
AUTO_APPROVE_THRESHOLD = {
"min_knowledge_points": 10,
"min_description_length": 100,
"coverage_score_threshold": 0.7
}
审核标准
- ✅ 知识点数量 ≥ 5
- ✅ 课程描述长度 ≥ 50 字符
- ✅ 难度等级明确
- ✅ 无敏感内容
- ✅ 内容与知识库一致
🔐 权限控制
当前实现
- 提交审核: 任何用户(实际应限制为创建者)
- 审核操作: 需要管理员权限
- 查看课程:
- 学生:只能看到
published状态 - 创建者:可以看到自己创建的所有状态
- 管理员:可以看到所有状态
- 学生:只能看到
未来改进
- 集成完整的权限系统
- 从 session 中获取用户信息
- 验证创建者身份
📝 使用指南
对于创建者
知识库更新后
- 课程自动生成,状态为
draft - 检查课程内容
- 确认无误后提交审核
- 课程自动生成,状态为
审核被拒绝后
- 查看拒绝原因
- 修改课程内容
- 重新提交审核
对于管理员
查看待审核课程
GET /api/courses/pending-review审核课程
- 检查课程内容质量
- 检查合规性
- 通过或拒绝
⚠️ 注意事项
1. 向后兼容
- 现有课程如果没有
status字段,默认为published - 确保现有课程仍然可见
2. 状态一致性
- 课程更新后,如果状态是
published,保持发布状态 - 如果状态是
draft或rejected,需要重新提交审核
3. 权限验证
- 当前权限验证是简化版
- 需要集成完整的权限系统
4. 通知机制
- 审核结果应通知创建者
- 待审核课程应通知管理员
- 使用现有的通知系统
🚀 未来扩展
阶段1:管理界面
- 创建课程审核管理页面
- 显示待审核课程列表
- 审核操作界面
阶段2:通知系统
- 提交审核时通知管理员
- 审核结果通知创建者
- 使用邮件/WebSocket 通知
阶段3:自动审核
- 基于规则的自动审核
- 高质量课程自动通过
- 低质量课程自动拒绝
阶段4:审核历史
- 记录审核历史
- 审核统计报表
- 审核效率分析
📚 相关文件
src/services/course_sync_service.py- 课程同步服务opensource/mbe-education/backend/api/course_review_api.py- 审核 APIopensource/mbe-education/scripts/run_simple_api.py- 后端服务集成docs/architecture/COURSE_REVIEW_WORKFLOW.md- 审核流程设计
✅ 总结
✅ 已解决的问题:
- 课程生成后直接发布,没有审核环节
- 课程内容质量无法保证
- 可能存在不当内容
✅ 实现方案:
- 引入课程审核机制
- 状态管理和流转
- 审核 API 和管理功能
✅ 优势:
- 质量控制
- 合规性保证
- 与专家审核流程一致
- 可追溯的审核历史