Summary: - Add PRD and architecture design V4 (Brain-Hand model) - Complete 5 development guide documents - Pass 3 rounds of team review (v1.0 -> v1.3) - Add module status guide document - Update system status document Key Features: - Brain-Hand architecture: Node.js + R Docker - Statistical guardrails with auto degradation - HITL workflow: PlanCard -> ExecutionTrace -> ResultCard - Mixed data protocol: inline vs OSS - Reproducible R code delivery MVP Scope: 10 statistical tools Status: Design 100%, ready for development Co-authored-by: Cursor <cursoragent@cursor.com>
7.2 KiB
7.2 KiB
SSA-Pro: 智能统计分析项目开发管理与实施计划
文档版本: v1.0
创建日期: 2026-02-07
项目代号: SSA (Smart Statistical Analysis)
技术架构: SSA-Pro V4.0 (Sync API + Guardrails + White-box)
产品目标: 打造医疗科研领域最严谨、透明、可交付代码的智能统计助手。
1. 总体里程碑规划 (Milestones Map)
我们将项目划分为三个阶段,采取 "走通链路 -> 完善体验 -> 批量量产" 的策略。
| 阶段 | 周期 | 核心目标 (OKR) | 交付物 |
|---|---|---|---|
| Phase 1: 骨架与地基 | Week 1-2 | 跑通 "Hello World"。 打通 Node -> R 的调用链路,完成数据库与 Docker 环境搭建。 | ✅ R Docker 基础镜像 ✅ 核心数据库表 (tools_library) ✅ 第 1 个工具 (T检验) 跑通 API |
| Phase 2: 智能与交互 MVP | Week 3-5 | 实现 "V2 原型体验"。 完成 RAG 检索、AI 规划、前端交互卡片,集成 Top 10 核心工具。 | ✅ 完整 Chat 交互界面 ✅ 智能规划 (Planner) 上线 ✅ 10 个高频统计工具可用 |
| Phase 3: 量产与交付 | Week 6-8 | 覆盖 80% 场景。 批量迁移剩余工具,完善结果解释 (Critic) 与代码下载功能。 | ✅ 50+ 工具上线 ✅ 代码下载/Word导出功能 ✅ 生产环境部署与压测 |
2. 详细任务清单 (To-Do List by Role)
🏁 Phase 1: 骨架与地基 (Week 1-2)
目标: 不追求 UI 美观,只追求 API 通畅。实现 POST /execute 能返回 T 检验的 JSON 结果。
🐹 后端工程 (Node.js)
- [ ] DB 设计:根据 SSA-02 创建 ssa_schema 及 tools_library, execution_logs 表。
- [ ] API 存根:实现 POST /api/v1/ssa/execute 接口,目前仅做转发(Proxy)到 R 服务。
- [ ] RAG 基础:复用 common/rag,创建 ToolSearchService,支持对工具描述的向量检索。
📐 R 工程 (Statistics)
- [ ] 环境构建:编写 Dockerfile,基于 rocker/r-ver,安装 plumber, jsonlite, ggplot2 等基础包。
- [ ] Wrapper 规范:根据 SSA-01,编写标准 wrapper_template.R(含输入解析、错误捕获、Base64输出)。
- [ ] 首个工具:迁移并封装 ST_T_TEST_IND (独立样本 T 检验),实现正态性检查逻辑。
- [ ] 服务启动:编写 plumber.R 入口文件,挂载 /run 端点。
🎨 前端工程 (React)
- [ ] Mock 数据:根据原型图,构造 PlanCard 和 ResultCard 的 Mock JSON 数据。
- [ ] 组件开发:开发基础的 ChatContainer(复用 AIA 模块)和侧边栏框架。
🚀 Phase 2: 智能与交互 MVP (Week 3-5)
目标: 用户可以上传数据,AI 能听懂并规划,前端能展示“执行树”和“三线表”。
🧠 AI 策略 (Prompt Engineering)
- [ ] Query Rewriter:调试 Prompt,将用户口语("看差异")转化为术语("T检验")。
- [ ] Planner Agent:根据 SSA-03,调试 DeepSeek-V3 的 Prompt,确保稳定输出符合 Schema 的 JSON 计划。
- [ ] 元数据注入:实现动态 Context 组装逻辑(只注入 Top-5 工具定义)。
📐 R 工程 (Statistics)
- [ ] Top 10 工具迁移:完成卡方、ANOVA、相关性、Mann-Whitney、Wilcoxon 等高频工具的封装。
- [ ] Trace Log 实现:在 R 代码中埋点,记录 check_normality, check_variance 等步骤的状态。
- [ ] 代码生成器:实现 generate_code() 函数,拼接可独立运行的 R 脚本字符串。
🎨 前端工程 (React)
- [ ] 卡片组件:开发 ConfirmationCard (确认卡片) 和 ExecutionTree (执行路径树,支持动画)。
- [ ] 结果渲染:开发 ResultCard,支持 Tab 切换 (解读/图表/表格)。
- [ ] 数据上传:实现侧边栏文件上传,调用 DC 模块解析 Schema(不传数据给 LLM)。
🐹 后端工程 (Node.js)
- [ ] 编排逻辑:实现 Retrieve -> Plan -> Wait -> Execute 的完整业务流。
- [ ] 数据隐私:确保传给 LLM 的只有 Schema,传给 R 的才有 Data。
📦 Phase 3: 量产与交付 (Week 6-8)
目标: 工具库丰富,报告专业,具备生产环境稳定性。
📐 R 工程 (Statistics)
- [ ] 批量工厂:编写脚本扫描旧 R 代码注释,自动生成 tools_library.json 元数据(Metadata Engineering)。
- [ ] 长尾工具迁移:按优先级迁移剩余工具(回归、生存分析、降维等)。
- [ ] 错误处理:增强 tryCatch,对常见统计错误返回友好的 Message。
🧠 AI 策略 (Critic)
- [ ] Critic Agent:调试“结果解释” Prompt,确保输出严谨的学术结论(P值解读、置信区间)。
- [ ] 模拟提问生成:使用 Qwen-Max 离线生成 500+ 条模拟用户提问,更新向量库,提升检索准确率。
🎨 前端工程 (React)
- [ ] 三线表组件:优化表格样式,符合 APA 格式。
- [ ] 资产交付:实现 R 代码下载(.zip)和 Word 报告导出(调用 Pandoc 服务)。
- [ ] 图表预览:集成 react-photo-view 实现图表点击放大。
🛡️ 运维与测试
- [ ] 网络隔离:配置 SAE 网络策略,禁止 R 容器访问外网。
- [ ] 并发测试:测试 10 个并发请求下的 R 服务内存占用。
- [ ] 端到端测试:验证 20 个典型统计场景的准确性。
3. 关键依赖检查 (Dependencies)
在项目启动前,请确认以下资源已就绪:
- 基础设施:
- [x] SAE 环境 (Node.js + Python 已就绪,需新增 R 应用)
- [x] RDS PostgreSQL (pgvector 插件已安装)
- [x] OSS 存储 (用于存临时图表或大文件)
- 技术资产:
- [x] DC 模块 (Tool C):用于前置数据清洗和 Excel 解析。
- [x] 通用 Chat 组件:AIA 模块已沉淀,可直接复用。
- [x] LLM 网关:DeepSeek-V3 接口已调通。
4. 风险管理 (Risk Management)
| 风险点 | 概率 | 影响 | 应对策略 |
|---|---|---|---|
| R 工具封装进度慢 | 高 | 阻塞上线 | 优先封装 Top 10;编写代码生成脚本辅助封装。 |
| LLM 规划参数错误 | 中 | 运行报错 | 在 R 入口处做强类型校验;前端卡片允许用户人工修正参数。 |
| 大文件导致 R 崩溃 | 中 | 服务不可用 | 严格限制上传文件 < 2MB;SAE 配置内存监控和自动重启。 |
| 统计结果解释幻觉 | 低 | 学术误导 | Critic Prompt 强制要求基于 R 输出的 JSON 说话,禁止脑补。 |
5. 每日工作流建议 (Daily Workflow)
建议采用 "R 优先,前后端跟进" 的模式:
- R 工程师:每天封装 2-3 个工具,提交到代码库,并更新 tools_metadata.json。
- 后端工程师:更新向量库数据,确保 LLM 能检索到新工具。
- 前端工程师:针对新工具的特殊参数(如生存分析的时间列),微调卡片展示逻辑。
- 每日站会:演示昨天封装的工具是否能跑通闭环。