feat(dc/tool-c): 完成AI代码生成服务(Day 3 MVP)
核心功能: - 新增AICodeService(550行):AI代码生成核心服务 - 新增AIController(257行):4个API端点 - 新增dc_tool_c_ai_history表:存储对话历史 - 实现自我修正机制:最多3次智能重试 - 集成LLMFactory:复用通用能力层 - 10个Few-shot示例:覆盖Level 1-4场景 技术优化: - 修复NaN序列化问题(Python端转None) - 修复数据传递问题(从Session获取真实数据) - 优化System Prompt(明确环境信息) - 调整Few-shot示例(移除import语句) 测试结果: - 通过率:9/11(81.8%) 达到MVP标准 - 成功场景:缺失值处理、编码、分箱、BMI、筛选、填补、统计、分类 - 待优化:数值清洗、智能去重(已记录技术债务TD-C-006) API端点: - POST /api/v1/dc/tool-c/ai/generate(生成代码) - POST /api/v1/dc/tool-c/ai/execute(执行代码) - POST /api/v1/dc/tool-c/ai/process(生成并执行,一步到位) - GET /api/v1/dc/tool-c/ai/history/:sessionId(对话历史) 文档更新: - 新增Day 3开发完成总结(770行) - 新增复杂场景优化技术债务(TD-C-006) - 更新工具C当前状态文档 - 更新技术债务清单 影响范围: - backend/src/modules/dc/tool-c/*(新增2个文件,更新1个文件) - backend/scripts/create-tool-c-ai-history-table.mjs(新增) - backend/prisma/schema.prisma(新增DcToolCAiHistory模型) - extraction_service/services/dc_executor.py(NaN序列化修复) - docs/03-业务模块/DC-数据清洗整理/*(5份文档更新) Breaking Changes: 无 总代码行数:+950行 Refs: #Tool-C-Day3
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# 工具C(Tool C)- 科研数据编辑器 - 当前状态与开发指南
|
||||
|
||||
> **最后更新**: 2025-12-06
|
||||
> **当前版本**: Day 2 MVP开发完成
|
||||
> **开发进度**: Python微服务 ✅ | Session管理 ✅ | AI代码生成 ⏸️ | 前端开发 ⏸️
|
||||
> **最后更新**: 2025-12-07
|
||||
> **当前版本**: Day 3 MVP开发完成
|
||||
> **开发进度**: Python微服务 ✅ | Session管理 ✅ | AI代码生成 ✅ | 前端开发 ⏸️
|
||||
|
||||
---
|
||||
|
||||
@@ -10,11 +10,12 @@
|
||||
|
||||
| 组件 | 进度 | 代码行数 | 状态 |
|
||||
|------|------|---------|------|
|
||||
| **Python微服务** | 100% | ~450行 | ✅ Day 1完成 |
|
||||
| **Node.js后端** | 40% | ~1700行 | 🟡 Day 2完成 |
|
||||
| **Python微服务** | 100% | ~430行 | ✅ Day 1完成(Day 3优化) |
|
||||
| **Node.js后端** | 85% | ~2650行 | ✅ Day 2-3完成 |
|
||||
| **前端界面** | 0% | 0行 | ⏸️ 未开始 |
|
||||
| **数据库Schema** | 100% | 1表 | ✅ Day 2完成 |
|
||||
| **总体进度** | **25%** | **~2150行** | 🟡 **MVP阶段** |
|
||||
| **数据库Schema** | 100% | 2表 | ✅ Day 2-3完成 |
|
||||
| **测试通过率** | 81.8% | 9/11场景 | ✅ MVP达标 |
|
||||
| **总体进度** | **60%** | **~3080行** | ✅ **后端MVP完成** |
|
||||
|
||||
---
|
||||
|
||||
@@ -156,6 +157,86 @@ df['hypertension'] = df.apply(
|
||||
|
||||
---
|
||||
|
||||
### Day 3: AI代码生成服务 ✅
|
||||
|
||||
#### 文件结构(新增)
|
||||
```
|
||||
backend/src/modules/dc/tool-c/
|
||||
├── services/
|
||||
│ ├── PythonExecutorService.ts # 177行 ✅ Day 1
|
||||
│ ├── SessionService.ts # 383行 ✅ Day 2
|
||||
│ ├── DataProcessService.ts # 303行 ✅ Day 2
|
||||
│ └── AICodeService.ts # 550行 ✅ Day 3 新增
|
||||
├── controllers/
|
||||
│ ├── TestController.ts # 131行 ✅ Day 1
|
||||
│ ├── SessionController.ts # 300行 ✅ Day 2
|
||||
│ └── AIController.ts # 257行 ✅ Day 3 新增
|
||||
└── routes/
|
||||
└── index.ts # 85行 ✅ Day 3 更新
|
||||
```
|
||||
|
||||
#### 核心功能
|
||||
|
||||
**3.1 AICodeService** ✅
|
||||
- **功能**: AI代码生成核心服务
|
||||
- **方法**:
|
||||
```typescript
|
||||
class AICodeService {
|
||||
generateCode(sessionId, userMessage): Promise<GenerateCodeResult>
|
||||
executeCode(sessionId, code, messageId): Promise<ExecuteCodeResult>
|
||||
generateAndExecute(sessionId, userMessage, maxRetries): Promise<ProcessResult>
|
||||
getHistory(sessionId, limit): Promise<Message[]>
|
||||
}
|
||||
```
|
||||
- **特性**:
|
||||
- ✅ 复用LLMFactory(通用能力层)
|
||||
- ✅ 10个Few-shot示例(Level 1-4)
|
||||
- ✅ 自我修正机制(最多3次重试)
|
||||
- ✅ 对话历史管理(最近5轮)
|
||||
- ✅ 从Session获取真实数据执行
|
||||
- ✅ 详细System Prompt(含环境说明)
|
||||
|
||||
**3.2 AIController** ✅
|
||||
- **功能**: AI功能API端点
|
||||
- **端点**:
|
||||
- `POST /ai/generate` - 生成代码(不执行)✅
|
||||
- `POST /ai/execute` - 执行代码 ✅
|
||||
- `POST /ai/process` - 生成并执行(一步到位)✅
|
||||
- `GET /ai/history/:sessionId` - 获取对话历史 ✅
|
||||
|
||||
**3.3 数据库表** ✅
|
||||
- **表名**: `dc_schema.dc_tool_c_ai_history`
|
||||
- **字段**: 14个(id, session_id, user_id, role, content, generated_code, code_explanation, execute_status, execute_result, execute_error, retry_count, model, created_at)
|
||||
- **索引**: 3个(主键 + session_id + user_id)
|
||||
- **迁移脚本**: `backend/scripts/create-tool-c-ai-history-table.mjs`
|
||||
|
||||
#### AI功能测试结果(Day 3)
|
||||
|
||||
✅ **测试通过率**: 9/11 (81.8%) **达到MVP标准**
|
||||
|
||||
**成功场景(9个):**
|
||||
1. ✅ 统一缺失值标记
|
||||
2. ✅ 分类变量编码
|
||||
3. ✅ 连续变量分箱
|
||||
4. ✅ BMI计算
|
||||
5. ✅ 条件筛选
|
||||
6. ✅ 缺失值填补
|
||||
7. ✅ 统计汇总
|
||||
8. ✅ 复杂分类
|
||||
9. ✅ 对话历史获取
|
||||
|
||||
**待优化场景(2个,已记录技术债务TD-C-006):**
|
||||
1. ❌ 数值列清洗(复杂字符串处理)
|
||||
2. ❌ 智能去重(日期解析+排序)
|
||||
|
||||
**关键修复:**
|
||||
- ✅ NaN序列化问题(Python端转None)
|
||||
- ✅ 数据传递问题(从Session获取真实数据)
|
||||
- ✅ System Prompt优化(明确告知环境信息)
|
||||
- ✅ Few-shot示例调整(移除import语句)
|
||||
|
||||
---
|
||||
|
||||
### Day 2: Session管理 + 数据处理 ✅
|
||||
|
||||
#### 文件结构(新增)
|
||||
@@ -436,7 +517,7 @@ dc_schema.dc_health_checks -- 健康检查 ✅
|
||||
|
||||
-- Tool C相关表
|
||||
dc_schema.dc_tool_c_sessions -- ✅ 已创建(Day 2)
|
||||
dc_schema.dc_tool_c_ai_history -- ⏸️ 待创建(Day 3)
|
||||
dc_schema.dc_tool_c_ai_history -- ✅ 已创建(Day 3)
|
||||
```
|
||||
|
||||
**创建方式**(已完成):
|
||||
@@ -497,12 +578,13 @@ CREATE TABLE dc_schema.dc_tool_c_sessions (
|
||||
| DELETE | `/api/v1/dc/tool-c/sessions/:id` | 删除Session | ✅ | 200 成功 |
|
||||
| POST | `/api/v1/dc/tool-c/sessions/:id/heartbeat` | 心跳更新 | ✅ | 200 成功 |
|
||||
|
||||
#### AI功能端点(待开发)
|
||||
| 方法 | 端点 | 功能 | 状态 | 计划 |
|
||||
#### AI功能端点(Day 3已完成)✅
|
||||
| 方法 | 端点 | 功能 | 状态 | 测试 |
|
||||
|------|------|------|------|------|
|
||||
| POST | `/api/v1/dc/tool-c/ai/chat` | AI对话生成代码 | ⏸️ | Day 3 |
|
||||
| POST | `/api/v1/dc/tool-c/ai/execute` | 执行AI代码 | ⏸️ | Day 3 |
|
||||
| GET | `/api/v1/dc/tool-c/ai/history/:sessionId` | 获取历史 | ⏸️ | Day 3 |
|
||||
| POST | `/api/v1/dc/tool-c/ai/generate` | 生成代码 | ✅ | ✅ 通过 |
|
||||
| POST | `/api/v1/dc/tool-c/ai/execute` | 执行代码 | ✅ | ✅ 通过 |
|
||||
| POST | `/api/v1/dc/tool-c/ai/process` | 生成并执行 | ✅ | ✅ 81.8%通过 |
|
||||
| GET | `/api/v1/dc/tool-c/ai/history/:sessionId` | 获取历史 | ✅ | ✅ 通过 |
|
||||
|
||||
---
|
||||
|
||||
@@ -712,6 +794,7 @@ curl -X POST http://localhost:3000/api/v1/dc/tool-c/test/execute \
|
||||
|------|--------|---------|
|
||||
| 2025-12-06 | Day 1完成 | [2025-12-06_工具C_Day1开发完成总结.md](./06-开发记录/2025-12-06_工具C_Day1开发完成总结.md) |
|
||||
| 2025-12-06 | Day 2完成 | [2025-12-06_工具C_Day2开发完成总结.md](./06-开发记录/2025-12-06_工具C_Day2开发完成总结.md) |
|
||||
| 2025-12-07 | Day 3完成 | [2025-12-06_工具C_Day3开发完成总结.md](./06-开发记录/2025-12-06_工具C_Day3开发完成总结.md) ✅ **后端MVP完成** |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user