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

123 lines
4.1 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.

# 审核系统问题修复报告
## 问题描述
在 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)
**修改前**
```typescript
await api.delete(`/projects/${projectId}/review/rules/${ruleId}`)
```
**修改后**
```typescript
await api.delete(`/custom-rules/${ruleId}`, { params: { project_id: projectId } })
```
### 2. 改进错误处理 (ReviewConfig.tsx:263-267)
**修改前**
```typescript
} catch (error) {
message.error('规则删除失败')
}
```
**修改后**
```typescript
} 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 已正确配置)
建议测试所有审核功能以确保修复没有引入新问题。