feat(dc/tool-c): 完成前端基础框架(Day 4 MVP)

核心功能:
- 新增Tool C主入口(index.tsx, 258行):状态管理+布局
- 新增Header组件(91行):顶栏+返回按钮+导出
- 新增Toolbar组件(104行):7个快捷按钮+搜索框
- 新增DataGrid组件(111行):AG Grid Community集成
- 新增Sidebar组件(149行):右侧栏骨架版
- 新增API封装(toolC.ts, 218行):8个API方法
- 新增类型定义(types/index.ts, 62行)

AG Grid集成:
- 安装ag-grid-community + ag-grid-react
- Excel风格表格渲染
- 列排序、过滤、调整宽度
- 缺失值高亮显示(红色斜体)
- 数值右对齐
- 自定义Emerald绿色主题(ag-grid-custom.css, 113行)
- 虚拟滚动支持大数据

路由配置:
- 更新dc/index.tsx:新增ToolCModule懒加载
- 更新Portal.tsx:Tool C状态改为ready
- 路径:/data-cleaning/tool-c

API封装(8个方法):
- uploadFile(上传CSV/Excel)
- getSession(获取Session元数据)
- getPreviewData(获取预览数据)
- updateHeartbeat(延长10分钟)
- generateCode(生成代码,不执行)
- executeCode(执行代码)
- processMessage(生成+执行,一步到位)核心API
- getChatHistory(对话历史)

文档更新:
- 新增Day 4前端基础完成总结(213行)
- 更新工具C当前状态文档
- 更新TODO清单(Day 1-4标记完成)
- 更新系统总体设计文档

测试数据准备:
- cqol-demo.csv(21列x313行真实医疗数据)
- G鼓膜穿孔数据.xlsx(备用)

Day 5待完成:
- MessageItem组件(消息渲染)
- CodeBlock组件(Prism.js代码高亮)
- InputArea组件(输入框交互)
- InsightsPanel组件(数据洞察)
- 完善Sidebar(完整Chat交互)
- 端到端测试

影响范围:
- frontend-v2/src/modules/dc/pages/tool-c/*(新增11个文件)
- frontend-v2/src/modules/dc/api/toolC.ts(新增)
- frontend-v2/src/modules/dc/index.tsx(更新路由)
- frontend-v2/src/modules/dc/pages/Portal.tsx(启用Tool C)
- docs/03-业务模块/DC-数据清洗整理/*(文档更新)
- package.json(新增依赖)

Breaking Changes: 无

总代码行数:+1106行(前端基础框架)

Refs: #Tool-C-Day4
This commit is contained in:
2025-12-07 17:40:07 +08:00
parent f01981bf78
commit 2c7ed94161
20 changed files with 3173 additions and 105 deletions

View File

@@ -1,8 +1,10 @@
# 工具C MVP开发 - To-do List
> **文档版本**v1.0
> **文档版本**v1.2
> **创建日期**2025-12-06
> **最后更新**2025-12-07
> **预计工期**3周15个工作日
> **实际进度**Day 1-4完成Day 5进行中
> **参考文档**[工具C_MVP开发计划_V1.0.md](./工具C_MVP开发计划_V1.0.md)
---
@@ -11,87 +13,120 @@
| 阶段 | 任务数 | 已完成 | 进行中 | 待开始 | 完成率 |
|------|-------|-------|-------|-------|--------|
| **Week 1: 基础架构** | 12 | 0 | 0 | 12 | 0% |
| **Week 1: 基础架构** | 12 | 10 | 1 | 1 | 83% ✅ |
| **Week 2: 核心功能** | 10 | 0 | 0 | 10 | 0% |
| **Week 3: 测试优化** | 8 | 0 | 0 | 8 | 0% |
| **总计** | **30** | **0** | **0** | **30** | **0%** |
| **总计** | **30** | **10** | **1** | **19** | **33%** |
**最新更新**2025-12-07 Day 4前端基础框架完成
---
## 🎯 核心里程碑(必须完成)
- [ ] **M1**Python代码执行环境搭建完成Day 1
- [ ] **M2**AI生成代码能力验证通过Day 7
- [ ] **M3**基础场景成功率 > 90%Day 12
- [ ] **M4**:总体成功率 > 80%Day 15
- [x] **M1**Python代码执行环境搭建完成Day 1✅ 2025-12-06
- [x] **M2**AI生成代码能力验证通过Day 3✅ 2025-12-07提前完成
- [ ] **M3**前端MVP完成端到端可用Day 5🚀 进行中
- [ ] **M4**:总体成功率 > 80%Day 6-7 待开始
---
## 🚀 最新进展2025-12-07
### ✅ 已完成
- **Day 1** (2025-12-06): Python微服务扩展 ✅
- dc_executor.py427行
- AST安全检查 + Pandas执行
- 测试通过率100%
- **Day 2** (2025-12-06): Session管理 + 数据处理 ✅
- SessionService.ts383行
- DataProcessService.ts303行
- SessionController.ts300行
- 数据库表dc_tool_c_sessions
- 测试通过率100% (7/7 API)
- **Day 3** (2025-12-07): AI代码生成服务 ✅
- AICodeService.ts550行
- AIController.ts257行
- 数据库表dc_tool_c_ai_history
- 10个Few-shot示例
- 自我修正机制最多3次重试
- 测试通过率81.8% (9/11场景)
- **Day 4** (2025-12-07): 前端基础框架 ✅
- index.tsx258行
- Header + Toolbar + DataGrid (AG Grid)
- Sidebar骨架
- API封装toolC.ts, 218行
- 路由配置完成
- Portal启用Tool C
### 🚧 进行中
- **Day 5** (进行中): AI Chat面板详细实现
- MessageItem组件
- CodeBlock组件
- InputArea组件
- InsightsPanel组件
- 完整API集成
- 端到端测试
### ⏸️ 待开始
- **Day 6-7**: 优化与测试
- **Day 8-10**: 高级功能
- **Day 11-15**: 全面测试
---
## 📅 Week 1基础架构搭建Day 1-5
### Day 1Python服务扩展 + 环境验证 ⭐
### Day 1Python服务扩展 + 环境验证 ⭐ ✅ **已完成 2025-12-06**
#### Python微服务扩展
- [ ] **P0** 创建 `extraction_service/services/dc_executor.py`
- [ ] 实现 `validate_code(code)` - AST静态检查
- [ ] 实现 `execute_pandas_code(data, code)` - 代码执行
- [ ] 添加危险模块黑名单os、sys、subprocess等
- [ ] 添加超时保护30秒
- [ ] 添加异常捕获和错误消息
- [x] **P0** 创建 `extraction_service/services/dc_executor.py`
- [x] 实现 `validate_code(code)` - AST静态检查
- [x] 实现 `execute_pandas_code(data, code)` - 代码执行
- [x] 添加危险模块黑名单os、sys、subprocess等
- [x] 添加超时保护30秒
- [x] 添加异常捕获和错误消息
- [ ] **P0** 扩展 `extraction_service/main.py`
- [ ] 添加 `POST /api/dc/execute` 端点
- [ ] 添加 `POST /api/dc/validate` 端点
- [ ] 添加请求日志记录
- [ ] 添加错误处理中间件
- [x] **P0** 扩展 `extraction_service/main.py`
- [x] 添加 `POST /api/dc/execute` 端点
- [x] 添加 `POST /api/dc/validate` 端点
- [x] 添加请求日志记录
- [x] 添加错误处理中间件
- [ ] **P0** 测试Python服务
- [ ] 启动服务`cd extraction_service && venv\Scripts\activate && uvicorn main:app --reload`
- [ ] 测试健康检查`GET http://localhost:8000/api/health`
- [ ] 测试代码验证发送简单Pandas代码
- [ ] 测试代码执行:发送真实数据+代码
- [ ] 验证AST拦截:发送危险代码(如 `import os`
- [x] **P0** 测试Python服务
- [x] 启动服务
- [x] 测试健康检查
- [x] 测试代码验证
- [x] 测试代码执行
- [x] 验证AST拦截
#### Node.js后端集成
- [ ] **P0** 创建后端文件夹结构
```
backend/src/modules/dc/tool-c/
├── services/
│ ├── SessionService.ts # Session管理
│ ├── AICodeService.ts # AI代码生成
│ ├── PythonExecutorService.ts # Python执行新增
│ └── DataProcessService.ts # 数据处理
├── controllers/
│ └── ToolCController.ts # HTTP控制器
├── routes/
│ └── index.ts # 路由定义
└── utils/
└── codeValidator.ts # 前置验证
```
- [x] **P0** 创建后端文件夹结构
- [ ] **P0** 实现 `PythonExecutorService.ts`
- [ ] 实现 `executeCode(data, code)` 方法
- [ ] 实现 `validateCode(code)` 方法
- [ ] 添加超时控制30秒
- [ ] 添加日志记录(复用 `@/common/logging`
- [ ] 添加错误处理和重试机制
- [x] **P0** 实现 `PythonExecutorService.ts`
- [x] 实现 `executeCode(data, code)` 方法
- [x] 实现 `validateCode(code)` 方法
- [x] 添加超时控制30秒
- [x] 添加日志记录
- [x] 添加错误处理和重试机制
- [ ] **P1** 环境变量配置
- [ ] 添加 `EXTRACTION_SERVICE_URL=http://localhost:8000` 到 `.env`
- [ ] 验证环境变量加载
- [x] **P1** 环境变量配置
#### 验收标准
- [ ] Python服务能成功执行简单Pandas代码(如 `df['age'] > 60`
- [ ] AST检查能拦截危险代码(如 `import os`
- [ ] Node.js能成功调用Python服务并获取结果
- [ ] 所有日志正常输出到控制台
- [x] Python服务能成功执行简单Pandas代码
- [x] AST检查能拦截危险代码
- [x] Node.js能成功调用Python服务并获取结果
- [x] 所有日志正常输出到控制台
---
### Day 2数据库 + Session管理
### Day 2数据库 + Session管理 ✅ **已完成 2025-12-06**
#### 数据库Schema设计
- [ ] **P0** 创建Prisma Schema`prisma/schema.prisma`
- [x] **P0** 创建Prisma Schema`prisma/schema.prisma`)✅
```prisma
// @@schema("dc")
model DcToolCSession {