核心功能: - 新增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
ASL模块开发记录
本目录记录ASL(AI智能文献筛选)模块的完整开发历程。
📁 文档索引
Week 1 完成报告(2025-11-18)
| 文档 | 内容 | 重要性 |
|---|---|---|
| 今日工作总结.md | 2025-11-18全天工作总结 | ⭐⭐⭐⭐⭐ |
| 两步测试完整报告.md | 国内外模型对比 + 三种风格测试 | ⭐⭐⭐⭐⭐ |
| 卒中数据泛化测试报告.md | 最初的泛化能力测试 | ⭐⭐⭐⭐ |
| Prompt设计与测试完成报告.md | Prompt v1.0.0测试 | ⭐⭐⭐ |
| Week1完成报告.md | Week 1开发完成总结 | ⭐⭐⭐⭐ |
🎯 核心发现
1. 根本问题确认
准确率不高的根本原因 = AI与人类对边界情况的理解差异
不是:
- ❌ 模型智商不够
- ❌ Prompt设计不好
- ❌ 宽松/严格程度不对
而是:
- ✅ 纳排标准存在隐含规则
- ✅ 边界情况定义不明确
- ✅ AI无法猜测用户真实意图
2. 解决方案
短期方案(已实现)✅
三种筛选风格:
- 宽松模式:初筛使用,宁可多纳入
- 标准模式:常规使用,平衡准确率
- 严格模式:精筛使用,宁可错杀
状态: 后端完成,前端待开发
中期方案(推荐)⭐
用户自定义边界情况:
- 用户输入PICOS + 纳排标准
- LLM分析生成20种边界情况
- 用户确认每种情况的处理方式
- 系统生成定制化Prompt
优点: 消除AI与人类理解差异
长期方案(V1.0+)🔮
Few-shot学习:
- 从用户纠正中学习
- 持续优化准确率
- 个性化Prompt
📊 测试数据
模型性能对比
| 模型 | 准确率 | 一致率 | 速度 | JSON稳定性 |
|---|---|---|---|---|
| DeepSeek-V3 + Qwen-Max | 40% | 60% | 16秒 | ✅ 100% |
| GPT-4o + Claude-4.5 | 0%* | 80% | 10秒 | ❌ 20% |
*因JSON格式错误导致失败
筛选风格对比
| 风格 | 准确率 | 召回率 | 精确率 |
|---|---|---|---|
| 标准模式 | 60% | 0% | 100% |
| 宽松模式 | 20% | 50% | 0% |
| 严格模式 | 未测试 | - | - |
🚀 下一步计划
本周任务
- ⬜ 前端开发:筛选风格选择器
- ⬜ API集成:传递
style参数 - ⬜ 扩大测试:20篇真实数据
- ⬜ 用户培训:三种风格使用场景
Week 2任务
- ⬜ 设计边界情况确认UI
- ⬜ 实现LLM边界情况生成
- ⬜ 用户确认流程开发
- ⬜ 定制化Prompt生成
📝 快速链接
测试脚本
backend/scripts/test-stroke-screening.ts- 标准模式测试backend/scripts/test-stroke-screening-lenient.ts- 宽松模式测试backend/scripts/test-stroke-screening-international-models.ts- 模型对比backend/scripts/test-json-parser.ts- JSON解析器测试
Prompt文件
backend/prompts/asl/screening/v1.1.0-lenient.txt- 宽松Promptbackend/prompts/asl/screening/v1.1.0-standard.txt- 标准Promptbackend/prompts/asl/screening/v1.1.0-strict.txt- 严格Prompt
核心代码
backend/src/modules/asl/schemas/screening.schema.ts- Prompt生成backend/src/modules/asl/services/llmScreeningService.ts- 筛选服务backend/src/common/utils/jsonParser.ts- JSON解析器
💡 重要提示
- JSON解析器已修复 - 支持中文引号自动转换
- 三种风格已实现 - 后端完成,前端待开发
- 根本问题已确认 - 需要用户自定义边界情况
更新日期: 2025-11-18
维护人: AI Assistant
版本: v1.0