Files
AIclinicalresearch/docs/03-业务模块/SSA-智能统计分析/00-模块当前状态与开发指南.md

420 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SSA智能统计分析模块 - 当前状态与开发指南
> **文档版本:** v1.6
> **创建日期:** 2026-02-18
> **最后更新:** 2026-02-20
> **维护者:** 开发团队
> **当前状态:** 🎉 **V11 UI 前后端联调测试通过MVP Phase 1 核心完成 95%**
> **文档目的:** 快速了解SSA模块状态为新AI助手提供上下文
>
> **🎉 里程碑2026-02-18**
> - ✅ **PRD 完成**SSA-Pro 严谨型智能统计分析模块需求定义
> - ✅ **架构设计 V4 完成**Brain-Hand 双层架构 + 统计护栏 + HITL 人机协同
> - ✅ **MVP 开发计划 v1.5 完成**:通过 5 轮评审,纳入完整专家配置体系
> - ✅ **5 份开发文档完成**总览、任务清单、R服务指南、后端指南、前端指南
>
> **🎉 T 检验端到端测试通过2026-02-19**
> - ✅ **🎉 完整流程验证**:数据上传 → 计划生成 → 分析执行 → 结果展示 → 代码下载
> - ✅ **R 服务 Bug 修复**:缺失值自动过滤,解决分组变量 3 组问题
> - ✅ **类型推断优化**0/1 数字列正确识别为分类变量
> - ✅ **错误处理增强**R 服务错误信息正确传递给前端
> - ✅ **文件名动态生成**`{toolName}_{dataName}_{MMDD}_{HHmm}.R`
> - ✅ **前端模块激活**:智能统计分析入口可用
> - ✅ **用户会话隔离**:不同用户数据正确隔离
>
> **🎉 V11 UI 前后端联调测试通过2026-02-20**
> - ✅ **🎉 V11 UI 像素级还原**Gemini 风格对话界面,全屏沉浸式体验
> - ✅ **多任务支持**:单会话内可执行多个分析任务,独立管理状态
> - ✅ **单页滚动布局**:分析计划 → 执行日志 → 分析结果,步骤进度条导航
> - ✅ **Word 报告导出**:完整统计报告,包含数据描述、方法、结果、图表、结论
> - ✅ **输入框遮挡修复**Scroll Spacer 方案,解决 Flexbox padding-bottom 问题
> - ✅ **代码清理完成**:删除旧版 V8/V9 组件,精简代码结构
> - ✅ **前后端完整联调**:数据上传 → 计划生成 → 执行分析 → 结果展示 → 报告导出
>
> **🆕 v1.5 新增特性(专家配置体系):**
> - 🆕 **统计决策表**(Goal, Y, X, Design) 四维匹配精准选工具,替代简单 RAG
> - 🆕 **R 代码库**:支持上传 100+ 成熟 R 脚本,统一 `run_analysis()` 入口
> - 🆕 **参数映射配置**JSON Key → R 参数名可配置
> - 🆕 **护栏规则链**:支持 Block / Warn / Switch 三种 Action
> - 🆕 **结果解读模板**"填空题"式的论文级结论生成
---
## 📊 模块概览
### 基本信息
| 项目 | 信息 |
|------|------|
| **模块名称** | SSA - 智能统计分析 (Smart Statistical Analysis) |
| **模块定位** | AI驱动的"白盒"统计分析系统 |
| **商业价值** | ⭐⭐⭐⭐⭐ 极高 |
| **独立性** | ⭐⭐⭐⭐ 高(可独立使用,也可与其他模块协同) |
| **目标用户** | 临床研究人员、生物统计师 |
| **开发状态** | 🚀 **MVP Phase 1 开发中Week 1 完成 ~95%** |
### 核心目标
> 打造一个 **"白盒"、"严谨"、"可交付"** 的智能统计分析系统。
>
> **核心差异化**
> 1. **白盒**:用户完全理解 AI 做了什么,为什么这样做
> 2. **严谨**:统计护栏自动检测前提条件,违规时自动降级
> 3. **可交付**:生成可在本地运行的 R 代码,支持审计复现
### 功能规格
#### 核心AI能力规划中
1. **智能规划Planner**
- 🆕 **决策表匹配**(Goal, Y, X, Design) 四维精准选工具
- RAG 工具检索:作为决策表的兜底方案
- 参数映射:将自然语言映射为统计参数(可配置)
- 统计分析计划SAP生成
2. **统计护栏Guardrails**
- 正态性检验Shapiro-Wilk
- 方差齐性检验Levene
- 样本量检验
- 大样本优化N > 5000 抽样检验)
- 🆕 **护栏 Action**Block阻止 / Warn警告 / Switch切换方法
3. **人机协同HITL**
- Plan Card用户确认/修改分析计划
- Execution Trace实时展示执行路径
- Result Card结构化结果 + AI 解读
4. **代码交付**
- 生成可复现的 R 代码
- 自动注入依赖安装脚本
- APA 格式化输出p_value_fmt
5. **🆕 咨询模式**
- 无数据对话:用户只描述研究设计
- SAP 文档生成:结构化统计分析计划
- 多格式导出Word/Markdown
6. **🆕 配置中台(专家知识库)**
- 🆕 **统计决策表**Goal + Y + X + Design → Tool 映射
- 🆕 **R 代码库**100+ 成熟脚本上传,统一 `run_analysis()` 入口
- 🆕 **参数映射**JSON Key → R 参数名 + 校验规则
- 🆕 **护栏规则链**Check → Threshold → Action (Block/Warn/Switch)
- 🆕 **结果解读模板**"填空题"式论文级结论
- Excel 配置导入 + 热加载 + 配置校验
#### MVP 工具清单10个
| 工具代码 | 工具名称 | 适用场景 |
|---------|---------|---------|
| ST_T_TEST_IND | 独立样本T检验 | 两组连续变量比较 |
| ST_T_TEST_PAIRED | 配对样本T检验 | 配对设计 |
| ST_WILCOXON | Wilcoxon秩和检验 | T检验的非参数替代 |
| ST_ANOVA_ONE | 单因素方差分析 | 多组连续变量比较 |
| ST_CHI_SQUARE | 卡方检验 | 分类变量关联 |
| ST_FISHER | Fisher精确检验 | 小样本分类变量 |
| ST_CORRELATION | Pearson/Spearman相关 | 连续变量相关性 |
| ST_REGRESSION_LINEAR | 线性回归 | 预测建模 |
| ST_REGRESSION_LOGISTIC | Logistic回归 | 二分类预测 |
| ST_DESCRIBE | 描述性统计 | 数据概览 |
---
## 🏗️ 架构设计
### Brain-Hand 双层架构 + 配置中台
```
┌─────────────────────────────────────────────────────────┐
│ 用户界面 (Frontend) │
│ 🆕 ModeSwitch | DataUploader | PlanCard | ResultCard │
│ ↓ 智能分析 ↓ 咨询模式 │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ Planner (Brain/大脑) - Node.js │
│ ┌─────────────────────────────────────────────────────┐│
│ │ DataParserService: 数据解析 → Schema 提取 ││
│ │ ToolRetrievalService: RAG 工具检索 ││
│ │ PlannerService: LLM 规划(有数据) ││
│ │ 🆕 ConsultService: 无数据咨询 ││
│ │ 🆕 SAPGeneratorService: SAP 文档生成 ││
│ │ CriticService: 结果解读(流式) ││
│ └─────────────────────────────────────────────────────┘│
│ 📌 只看 Schema支持有数据/无数据两种模式 │
└─────────────────────────────────────────────────────────┘
↓ (仅智能分析模式)
┌─────────────────────────────────────────────────────────┐
│ Executor (Hand/四肢) - R Docker │
│ ┌─────────────────────────────────────────────────────┐│
│ │ data_loader.R: 混合数据协议inline/OSS ││
│ │ guardrails.R: 统计护栏(正态/方差齐性/样本量) ││
│ │ tools/*.R: 统计工具 Wrapperglue 模板) ││
│ │ result_formatter.R: 结果格式化p_value_fmt ││
│ │ error_codes.R: 结构化错误码 ││
│ └─────────────────────────────────────────────────────┘│
│ 📌 操作真实数据 + 生成可复现代码 │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 🆕 配置中台 (Config Center) │
│ ┌─────────────────────────────────────────────────────┐│
│ │ ConfigLoaderService: Excel 配置加载 ││
│ │ ConfigValidatorService: 配置校验 ││
│ │ ConfigCacheService: 配置缓存 + 热加载 ││
│ └─────────────────────────────────────────────────────┘│
│ 📌 统计专家可配置,系统动态加载 │
└─────────────────────────────────────────────────────────┘
```
### 关键技术决策
| 决策点 | 方案 | 理由 |
|--------|------|------|
| **R 服务部署** | SAE Docker固定 2 实例) | 避免冷启动延迟 |
| **数据传输** | 混合协议(<2MB inline, 2-20MB OSS | 平衡性能与内存 |
| **代码生成** | glue 模板 | 可维护性好于 paste0 |
| **LLM 输出** | jsonrepair + Zod | 容错 JSON 解析 |
| **隐私保护** | Schema 脱敏 + 分类变量稀有值隐藏 | 防止 LLM 泄露数据 |
---
## 📋 开发进度
| Phase | 任务 | 状态 | 完成日期 |
|-------|------|------|---------|
| Phase 0 | 需求分析与架构设计 | ✅ 已完成 | 2026-02-18 |
| Phase 0 | MVP 开发计划 v1.0 → v1.6 | ✅ 已完成 | 2026-02-19 |
| Phase 1 | 骨架搭建 + 配置中台 | 🎉 **核心完成 85%** | 2026-02-19 |
| Phase 2 | 智能规划 + 咨询模式 | 📋 待开始 | - |
| Phase 3 | 完善与联调 | 📋 待开始 | - |
| **总计** | 106 个任务 | **完成 38 项36%** | - |
### 🎉 Phase 1 已完成核心功能
| 组件 | 完成项 | 状态 |
|------|--------|------|
| **R 服务** | T 检验、错误码、护栏、预签名 URL、缺失值处理 | ✅ 100% |
| **后端** | 路由、RClientService、DataParserService、代码下载 | ✅ 83% |
| **前端** | 页面框架、数据上传、结果展示、代码下载、模块注册 | ✅ 100% |
| **配置中台** | 数据库表、热加载 API | 🔄 18% |
### 开发计划文档
| 文档 | 路径 | 说明 |
|------|------|------|
| **MVP总览** | `04-开发计划/00-MVP开发计划总览.md` | 范围、架构、里程碑 |
| **任务清单** | `04-开发计划/01-任务清单与进度追踪.md` | 可追踪的 TODO 列表 |
| **R服务指南** | `04-开发计划/02-R服务开发指南.md` | R 统计工程师专用 |
| **后端指南** | `04-开发计划/03-后端开发指南.md` | Node.js 工程师专用 |
| **前端指南** | `04-开发计划/04-前端开发指南.md` | 前端工程师专用 |
### 评审记录
| 版本 | 评审报告 | 结论 | 日期 |
|------|---------|------|------|
| v1.0 | `06-开发记录/SSA-Pro 方案深度审查与风险评估报告.md` | 需修订 | 2026-02-18 |
| v1.1 | `06-开发记录/SSA-Pro 方案深度审查与风险评估报告 V2.0.md` | 需修订 | 2026-02-18 |
| v1.2 | `06-开发记录/SSA-Pro V1.2 终极审查与发令报告V3.0.md` | 🟢 通过 | 2026-02-18 |
| v1.4 | 🆕 纳入双引擎 + 咨询模式 + 配置中台 | 🟢 通过 | 2026-02-18 |
---
## 🔧 技术依赖
### 复用的平台能力
| 能力 | 位置 | 用途 |
|------|------|------|
| **LLM网关** | `@/common/llm/LLMFactory` | Planner + Critic |
| **RAG引擎** | `@/common/rag` | 工具检索 |
| **存储** | `@/common/storage` | OSS 数据传输 |
| **日志** | `@/common/logging` | 结构化日志 |
| **流式响应** | `@/common/streaming` | Critic 流式输出 |
### LLM模型
| 模型 | 用途 | 说明 |
|------|------|------|
| DeepSeek-V3 | Planner + Query Rewriter | 性价比高 |
| Qwen3-rerank | 工具重排序 | 中文理解好 |
| GPT-5-Pro | Critic 结果解读 | 深度推理 |
### R 依赖
| 包 | 版本 | 用途 |
|-----|------|------|
| plumber | 1.2.1 | Web API 框架 |
| jsonlite | 1.8.8 | JSON 处理 |
| ggplot2 | 3.4.4 | 可视化 |
| glue | 1.7.0 | 模板代码生成 |
| car | 3.1-2 | Levene 检验 |
| httr | 1.4.7 | OSS 下载 |
---
## 📚 相关文档
### 需求文档
- [PRD SSA-Pro 严谨型智能统计分析模块](./00-系统设计/PRD%20SSA-Pro%20严谨型智能统计分析模块.md)
### 设计文档
- [SSA-Pro 严谨型智能统计分析架构设计方案V4](./00-系统设计/SSA-Pro%20严谨型智能统计分析架构设计方案V4.md) ⬅️ **核心架构文档**
- [SSA-Pro (V4.1) 统计技能中心架构规范](./00-系统设计/SSA-Pro%20(V4.1)%20统计技能中心架构规范.md)
### 原型文件
- [智能统计分析V2.html](./03-UI设计/智能统计分析V2.html) - 可直接浏览器打开
### 参考文档
- [云原生开发规范](../../04-开发规范/08-云原生开发规范.md)
- [系统架构分层设计](../../00-系统总体设计/01-系统架构分层设计.md)
---
## 🎯 快速开始
### 目录结构
```
docs/03-业务模块/SSA-智能统计分析/
├── 00-系统设计/ # PRD + 架构设计
├── 01-需求分析/ # 用户故事、用例
├── 02-技术设计/ # 详细技术方案
├── 03-UI设计/ # 原型图
├── 04-开发计划/ # MVP 开发文档5份
├── 05-测试用例/ # 测试方案
└── 06-开发记录/ # 评审报告、开发日志
```
### 开发环境准备
1. **R 服务环境**
```bash
cd r-statistics-service
docker build -t ssa-r-service .
docker run -p 8080:8080 -e DEV_MODE=true ssa-r-service
```
2. **后端开发**
```bash
cd backend
npm run dev
```
3. **前端开发**
```bash
cd frontend-v2
npm run dev
```
### API 接口预览
#### 智能分析模式
```http
### 创建会话
POST http://localhost:3001/api/v1/ssa/sessions
Content-Type: multipart/form-data
# file: 数据文件
### 生成分析计划
POST http://localhost:3001/api/v1/ssa/sessions/{sessionId}/plan
Content-Type: application/json
{"query": "比较两组GLU是否有显著差异"}
### 执行分析
POST http://localhost:3001/api/v1/ssa/sessions/{sessionId}/execute
Content-Type: application/json
{"plan": {...}, "debug": false}
### 获取结果
GET http://localhost:3001/api/v1/ssa/sessions/{sessionId}/result
```
#### 🆕 咨询模式
```http
### 创建咨询会话(无数据)
POST http://localhost:3001/api/v1/ssa/consult
### 咨询对话
POST http://localhost:3001/api/v1/ssa/consult/{sessionId}/chat
Content-Type: application/json
{"message": "我有一个双臂 RCT 研究,想比较主要终点..."}
### 生成 SAP 文档
POST http://localhost:3001/api/v1/ssa/consult/{sessionId}/generate-sap
### 下载 SAP
GET http://localhost:3001/api/v1/ssa/consult/{sessionId}/download-sap?format=word
```
#### 🆕 配置中台
```http
### 导入 Excel 配置
POST http://localhost:3001/api/v1/ssa/config/import
Content-Type: multipart/form-data
# file: config.xlsx
### 热加载配置
POST http://localhost:3001/api/v1/ssa/config/reload
### 获取工具列表
GET http://localhost:3001/api/v1/ssa/config/tools
```
---
## ⚠️ 注意事项
### 对新AI助手
1.**设计文档已完成**开发前请先阅读架构设计V4
2.**开发计划v1.4已审批**遵循5份开发文档进行开发
3. ⚠️ **Planner/Executor 分离**:代码目录按 planner/executor 组织
4. ⚠️ **Brain-Hand 隔离**Node.js 只看 SchemaR 操作真实数据
5. ⚠️ **支持无数据模式**:咨询模式下 Planner 可独立工作
6. ⚠️ **配置外置**:工具定义从 Excel 加载,不硬编码
7. ⚠️ **混合数据协议**< 2MB inline2-20MB OSS
8. ⚠️ **代码模板同步**:修改 Wrapper 逻辑时必须同步更新 templates/
### 风险与应对
| 风险 | 概率 | 应对策略 |
|------|------|---------|
| R 工具封装进度慢 | 高 | 先做 5 个核心工具glue 模板化开发 |
| LLM 输出 JSON 格式错误 | 中 | jsonrepair + Zod 强校验 |
| R 服务并发阻塞 | 中 | SAE 固定 2 实例 |
| Node.js xlsx 内存刺客 | 中 | SAE 内存上限 2GB+ |
| R 服务 Segfault 崩溃 | 低 | Liveness Probe + 502/504 友好提示 |
| 本地开发 OSS 不通 | 中 | DEV_MODE 读取本地 fixtures |
| 用户代码缺依赖 | 高 | 模板头部自动安装脚本 |
---
## 🚀 未来规划
### MVP 阶段(当前)
- [x] Phase 1骨架搭建T检验端到端跑通✅ 2026-02-19
- [ ] Phase 2智能与交互RAG + HITL + 10工具
- [ ] Phase 3打磨与调试性能优化 + Bug修复
### V2.0 阶段(规划中)
- [ ] 更多统计方法Meta分析、生存分析、倾向性评分
- [ ] 自定义工具上传
- [ ] 批量分析
- [ ] 报告导出Word/PDF
---
**文档版本:** v1.5
**最后更新:** 2026-02-19
**当前状态:** 🎉 T 检验端到端测试通过Phase 1 核心完成 85%
**下一步:** Phase 2 智能规划 + 更多统计方法(或完善配置中台)