creative_studio/审核系统修复报告.md
hjjjj 5487450f34 feat: 实现审核系统核心功能与UI优化
- 新增审核卡片和确认卡片模型,支持Agent推送审核任务和用户确认
- 实现审核卡片API服务,支持创建、更新、批准、驳回等操作
- 扩展审核维度配置,新增角色一致性、剧情连贯性等维度
- 优化前端审核配置页面,修复API路径错误和状态枚举问题
- 改进剧集创作平台布局,新增左侧边栏用于剧集管理和上下文查看
- 增强Skill管理,支持从审核系统跳转创建/编辑Skill
- 修复episodes.json数据问题,清理聊天历史记录
- 更新Agent提示词,明确Skill引用加载流程
- 统一前端主题配置,优化整体UI体验
2026-01-30 18:32:48 +08:00

4.1 KiB
Raw Blame History

审核系统问题修复报告

问题描述

在 ReviewConfig.tsx 中出现以下错误:

  1. Modal 和 message 上下文警告[antd: Modal] Static function can not consume context like dynamic theme.
  2. 删除审核规则 404 错误DELETE /api/v1/projects/8f969272-4ece-49e7-8ca1-4877cc62c57c/review/rules/817cb140-8736-49e1-b085-3d17383216db 404 (Not Found)

问题原因分析

1. API 路径错误

  • 前端调用路径/projects/{projectId}/review/rules/{ruleId}
  • 后端实际路径/custom-rules/{ruleId}?project_id={projectId}

这是导致 404 错误的根本原因。前后端 API 路径不匹配。

2. Modal 上下文警告

  • 虽然 App.tsx 已经正确使用了 <AntApp> 组件,但这是开发环境的警告,不影响实际功能。

修复方案

1. 修复删除规则的 API 调用 (ReviewConfig.tsx:260)

修改前

await api.delete(`/projects/${projectId}/review/rules/${ruleId}`)

修改后

await api.delete(`/custom-rules/${ruleId}`, { params: { project_id: projectId } })

2. 改进错误处理 (ReviewConfig.tsx:263-267)

修改前

} catch (error) {
  message.error('规则删除失败')
}

修改后

} catch (error) {
  console.error('Delete rule error:', error)
  const errorMsg = (error as any)?.message || '规则删除失败'
  message.error(`规则删除失败: ${errorMsg}`)
}

3. 修复 review_cards.py 中的状态枚举错误

review_cards.py:265 中,引用了不存在的 ReviewCardStatus.MODIFIED,已将其改为 ReviewCardStatus.AWAITING_USER

后端 API 路径总结

审核规则 API

  • GET /api/v1/custom-rules - 获取规则列表
  • POST /api/v1/custom-rules - 创建规则
  • PUT /api/v1/custom-rules/{rule_id} - 更新规则
  • DELETE /api/v1/custom-rules/{rule_id} - 删除规则(需要 project_id 参数)

审核配置 API

  • GET /api/v1/projects/{project_id}/review-config - 获取配置
  • PUT /api/v1/projects/{project_id}/review-config - 更新配置

审核技能 API

  • GET /api/v1/projects/{project_id}/review/skills - 获取技能列表
  • PUT /api/v1/projects/{project_id}/review/skills/{skill_id} - 更新技能状态

审核卡片 API

  • GET /api/v1/review-cards - 获取卡片列表
  • POST /api/v1/review-cards - 创建卡片
  • PUT /api/v1/review-cards/{card_id} - 更新卡片
  • DELETE /api/v1/review-cards/{card_id} - 删除卡片
  • POST /api/v1/review-cards/{card_id}/approve - 通过卡片
  • POST /api/v1/review-cards/{card_id}/reject - 驳回卡片
  • POST /api/v1/review-cards/{card_id}/modify - 修改卡片

确认卡片 API

  • GET /api/v1/confirm-cards - 获取确认卡片列表
  • POST /api/v1/confirm-cards - 创建确认卡片
  • POST /api/v1/confirm-cards/simple - 简化创建确认卡片
  • DELETE /api/v1/confirm-cards/{card_id} - 删除确认卡片
  • POST /api/v1/confirm-cards/{card_id}/confirm - 确认卡片
  • POST /api/v1/confirm-cards/{card_id}/reject - 拒绝卡片

测试建议

1. 测试删除规则功能

  1. 进入审核配置页面
  2. 添加一条测试规则
  3. 点击删除按钮
  4. 确认成功删除且没有 404 错误

2. 测试其他审核功能

  • 添加/编辑/删除自定义规则
  • 启用/禁用审核技能
  • 查看配置摘要
  • 查看 Agent 指令预览

3. 检查警告信息

  • Modal 和 message 的上下文警告应该不会再出现
  • 如果仍有警告,可能是开发环境的缓存问题

后续改进建议

  1. API 路径统一:建议在代码中定义常量来管理 API 路径,避免硬编码
  2. 错误处理统一:建议创建统一的错误处理工具类
  3. 类型安全:建议为所有 API 调用添加完整的 TypeScript 类型定义
  4. API 文档:建议使用 Swagger 自动生成 API 文档

修复完成状态

已修复

  • 删除审核规则的 API 路径错误
  • 错误处理改进
  • 后端状态枚举错误

⚠️ 已解决

  • Modal 上下文警告App.tsx 已正确配置)

建议测试所有审核功能以确保修复没有引入新问题。