Summary: - Update Tool C MVP Development Plan (V1.3) * Clarify Python execution as core feature * Add 15 real medical data cleaning scenarios (basic/medium/advanced) * Enhance System Prompt with 10 Few-shot examples * Discover existing Python service (extraction_service) * Update to extend existing service instead of rebuilding - Create Tool C MVP Development TODO List * 3-week plan with 30 tasks (Day 1-15) * 4 core milestones with clear acceptance criteria * Daily checklist and risk management * Detailed task breakdown for each day Key Changes: - Python service: Extend existing extraction_service instead of new setup - Test scenarios: 15 scenarios (5 basic + 5 medium + 5 advanced) - Success criteria: Basic >90%, Medium >80%, Advanced >60%, Total >80% - Development time: Reduced from 3 weeks to 2 weeks (reuse infrastructure) Status: Planning complete, ready to start Day 1 development
6.0 KiB
6.0 KiB
PRD:Tool C - 科研数据编辑器 (The Research Editor)
| 文档版本 | V6.0 (AI Code Interpreter 增强版) |
|---|---|
| 产品形态 | Web 端双核编辑器 (GUI 可视化操作 + LUI 自然语言交互) |
| 核心价值 | 将“Excel 的易用性”与“Python 的强大能力”结合。医生既可以通过鼠标点击完成微操,也可以通过自然语言指挥 AI 编写代码完成复杂的清洗任务(如长宽转换、多重插补)。 |
| 技术底座 | Node.js BFF + Python Server-side Sandbox + DeepSeek-V3 |
一、 产品核心理念 (Core Philosophy)
1.1 双核驱动 (Dual-Core Interaction)
- 左脑 (GUI): 提供类似 Excel 的网格和工具栏,适合“直觉式、原子化”的操作(如手动修改一个值、排序、筛选)。
- 右脑 (AI Copilot): 提供对话式代码解释器,适合“逻辑性、批量化”的操作(如“把年龄按60岁分箱”、“删除所有空行”、“计算生存时间”)。
1.2 可控黑盒 (Controllable Blackbox)
AI 不直接修改数据,而是生成 Python 代码。系统在执行前展示**“预操作卡片”**,由用户确认执行,确保科研数据的严谨性。
二、 核心业务流程 (User Flow)
数据导入 -> 双模式清洗 (点击工具栏 OR 对话 AI) -> 代码/操作执行 -> 实时预览更新 -> 版本快照 -> 导出结果
三、 功能模块详解 (Functional Requirements)
1. 界面布局 (The Workspace)
- P0: 分栏布局 (Split View):
- 左侧 (70%): 超级网格 (The Grid),展示数据预览。
- 右侧 (30%): 智能侧边栏 (Smart Sidebar),包含 [统计概览] 和 [AI 助手] 两个 Tab。
- P0: 全局状态指示:
- 当 AI 正在思考或后端正在计算时,左侧网格显示 “AI 处理中...” 遮罩,并锁定编辑,防止双写冲突。
2. 顶部扁平工具栏 (Flat Toolbar) —— GUI 核心
保留高频、标准化的操作入口,作为 AI 的补充。
- P0: 变量加工:
- 生成新变量: 弹窗公式构建器。
- 计算时间差: 内置医学常数 (年=365.25天)。
- 生成哑变量: 回归分析专用。
- 横纵表转换 (Pivot): * 交互升级: 点击后不再只是纯前端计算,而是调用后端 Python 逻辑,支持处理更复杂的转换。
- P0: 质量治理:
- 查找重复值: 按 ID 或全字段查重。
- 多重插补 (MICE): 全局入口,调用后端 sklearn 或 fancyimpute 库。
- P0: 样本筛选: 构建入排标准。
3. AI Copilot 智能助手 (The Brain) —— V6 核心升级
位于右侧侧边栏的 [AI 助手] Tab。
3.1 自然语言指令解析
- P0: 意图识别: 支持模糊指令,如“洗一下数据”、“把男变成1”。
- P0: 上下文感知: AI 能够读取当前的列名 (Metadata) 和前 5 行数据示例,理解数据含义。
3.2 代码解释器模式 (Code Interpreter)
- P0: 代码生成: AI 针对用户需求,生成可执行的 Python (Pandas) 代码块。
- P0: 预操作卡片 (Action Card):
- AI 不直接执行代码。
- 界面展示一个卡片:操作类型: 数据分箱 | 目标列: 年龄 | 代码预览。
- 按钮:[运行代码] | [取消]。
- P0: 执行反馈:
- 执行成功:显示 ✅,左侧表格自动刷新。
- 执行失败:AI 自动分析 Error Log,尝试自我修正代码并建议重试。
3.3 典型 AI 场景支持
- 高级清洗: “把所有列的异常值(>3倍标准差)替换为缺失值”。
- 复杂提取: “从‘诊断’列中提取出由‘/’分隔的第二部分,生成新列”。
- 批量处理: “删除所有缺失率超过 50% 的列”。
4. 智能统计面板 (Insight Panel)
位于右侧侧边栏的 [统计概览] Tab。
- P0: 列联动: 点击左侧网格某一列,右侧自动显示该列的分布图(直方图/频次图)。
- P0: 快捷操作: 图表下方直接提供“填补”、“分箱”、“映射”等快捷按钮。
5. 导出与流转 (Export)
- P0: 结果导出: 支持 Excel (.xlsx) 和 SPSS (.sav) 格式。
- P0: 操作审计: 导出的文件中,附带一份 "清洗日志 (Cleaning Log)",记录了所有的 AI 代码和手动操作步骤(用于科研溯源)。
四、 数据与性能策略 (Data Strategy)
4.1 性能准入 (Guardrails)
- 文件大小限制: 单个文件 < 20MB。
- 行数限制: 建议 < 50,000 行 以保证前端渲染流畅度。
- 策略: 后端 Python 可以处理百万行,但前端 AG Grid 仅加载前 100-1000 行作为预览(Preview Mode),导出时才生成全量文件。
4.2 安全与隐私
- P0: 沙箱隔离: AI 生成的 Python 代码必须在服务端的安全沙箱(Docker/SAE)中运行,禁止访问外网和系统文件。
- P0: 数据脱敏: 确保输入编辑器的数据已在前置环节(工具 B)完成了 PII 脱敏。
五、 埋点与统计
- AI 采纳率: 展示 Action Card 后,用户点击“运行”的比例。
- 代码报错率: AI 生成的代码在后端执行失败的比例。
- 常用指令 Top 10: 统计医生最常对 AI 说的话。
六、 附录:AI 指令集示例 (Few-Shot Examples)
| 用户指令 | AI 动作 (Action) | 生成代码逻辑 (Python Pandas) |
|---|---|---|
| "把性别转为数字" | Recode | df['sex'] = df['sex'].map({'男':1, '女':0}) |
| "年龄按60分两组" | Binning | df['age_group'] = pd.cut(df['age'], bins=[0,60,150], labels=['0','1']) |
| "删除没有ID的行" | Filter | df = df.dropna(subset=['patient_id']) |
| "计算BMI" | Formula | df['bmi'] = df['weight'] / (df['height']/100)**2 |
| "把每个人的一行变成多行" | Pivot/Melt | df = df.melt(id_vars=['id'], ...) |