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:
@@ -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.py(427行)
|
||||
- AST安全检查 + Pandas执行
|
||||
- 测试通过率:100%
|
||||
|
||||
- **Day 2** (2025-12-06): Session管理 + 数据处理 ✅
|
||||
- SessionService.ts(383行)
|
||||
- DataProcessService.ts(303行)
|
||||
- SessionController.ts(300行)
|
||||
- 数据库表:dc_tool_c_sessions
|
||||
- 测试通过率:100% (7/7 API)
|
||||
|
||||
- **Day 3** (2025-12-07): AI代码生成服务 ✅
|
||||
- AICodeService.ts(550行)
|
||||
- AIController.ts(257行)
|
||||
- 数据库表:dc_tool_c_ai_history
|
||||
- 10个Few-shot示例
|
||||
- 自我修正机制(最多3次重试)
|
||||
- 测试通过率:81.8% (9/11场景)
|
||||
|
||||
- **Day 4** (2025-12-07): 前端基础框架 ✅
|
||||
- index.tsx(258行)
|
||||
- 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 1:Python服务扩展 + 环境验证 ⭐
|
||||
### Day 1:Python服务扩展 + 环境验证 ⭐ ✅ **已完成 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 {
|
||||
|
||||
Reference in New Issue
Block a user