228 lines
9.5 KiB
Markdown
228 lines
9.5 KiB
Markdown
# **PRD: SSA-Pro 智能统计分析 (v2.0 双引擎架构版)**
|
||
|
||
**文档状态:** v2.1 (Optimized for User Scenarios)
|
||
|
||
**发布日期:** 2026-02-18
|
||
|
||
**文档密级:** 内部绝密
|
||
|
||
**核心变更:** \> 1\. 重构业务流程,确立“智能分析(混合模式)”为主流程。
|
||
|
||
2\. 明确“执行模式”为“标准化复用”场景,而非手动填参。
|
||
|
||
3\. 强化“专家配置”在架构中的核心地位。
|
||
|
||
## **1\. 核心变革说明 (Executive Summary)**
|
||
|
||
**致研发团队:为什么要进行这次架构升级?**
|
||
|
||
经过前几轮的技术验证与业务推演,我们发现原有的“上传-\>规划-\>执行”一条龙模式存在两个致命的业务死角:
|
||
|
||
1. **用户意图模糊**:用户往往不知道自己要做什么(如“帮我分析一下”),直接跑代码会报错或产生无意义结果。
|
||
2. **统计专家缺位**:护栏规则硬编码在代码里,统计专家无法维护,导致系统缺乏“灵魂”。
|
||
|
||
因此,我们将架构解耦为**两个独立子系统**,通过编排满足不同场景:
|
||
|
||
* **Planner(大脑)**:负责陪聊、澄清意图、生成方案。**(独立上线,无需数据)**
|
||
* **Executor(四肢)**:负责接收明确指令、跑数、出结果。**(复用之前的 R 开发成果)**
|
||
|
||
**架构拆分与用户体验的关系:**
|
||
|
||
架构上的拆分(Planner/Executor)是为了技术上的解耦和复用,但在用户体验端,对于最常见的“智能分析”场景,我们将这两者**无缝串联**,给用户提供“一站式”体验。
|
||
|
||
## **2\. 研发背景与业务价值**
|
||
|
||
### **2.1 用户真实痛点**
|
||
|
||
* **场景 A (无数据)**:医生在写基金本子,还没收病人,但他急需一份《统计学分析计划书》来填表。原方案不支持此场景。
|
||
* **场景 B (数据脏)**:医生上传的 Excel 列名全是中文,且有特殊字符。原方案直接跑 R 会崩溃。
|
||
* **场景 C (隐私顾虑)**:医生不敢把数据上传到云端,但又想知道该用什么统计方法。
|
||
|
||
### **2.2 产品解决方案:双引擎 \+ 配置中台**
|
||
|
||
1. **独立咨询 (SSA-Planner)**:无需上传数据,通过多轮对话澄清意图,输出专业的 SAP (分析计划)。
|
||
2. **独立计算 (SSA-Executor)**:用户确认方案后,再上传数据,一键执行计算,交付代码。
|
||
3. **专家协同 (Config Center)**:统计专家通过 Excel 配置规则,系统动态加载,不再硬编码。
|
||
|
||
### **2.3 商业价值**
|
||
|
||
* **降低门槛**:用户不用传数据就能体验 AI 能力(Planner),极大地提高了转化率。
|
||
* **数据安全**:实现了逻辑(云端)与数据(本地/隔离)的彻底解耦。
|
||
|
||
## **3\. 系统架构与模块定义**
|
||
|
||
### **3.1 总体架构图**
|
||
|
||
graph TD
|
||
subgraph "用户触点"
|
||
Chat\[前端 Chat 界面\]
|
||
end
|
||
|
||
subgraph "Module A: 智能规划师 (SSA-Planner)"
|
||
Intent\[意图识别引擎\]
|
||
Clarify\[澄清引导模块\]
|
||
GenSAP\[SAP 生成模块\]
|
||
end
|
||
|
||
subgraph "Module B: 智能执行器 (SSA-Executor)"
|
||
API\[Executor API\]
|
||
R\_Core\[R Docker 容器\]
|
||
Guard\[统计护栏\]
|
||
end
|
||
|
||
subgraph "Module C: 统计配置中台 (Admin)"
|
||
Meta\[元数据管理\]
|
||
Rules\[规则引擎\]
|
||
Templates\[代码模板\]
|
||
end
|
||
|
||
Chat \--"1. 咨询/方案"--\> Intent
|
||
Intent \<--\> Clarify
|
||
Intent \--\> GenSAP
|
||
|
||
Chat \--"2. 执行/计算"--\> API
|
||
API \--\> R\_Core
|
||
|
||
Meta \-.-\> Intent
|
||
Rules \-.-\> Guard
|
||
|
||
### **3.2 模块功能详述**
|
||
|
||
#### **🧩 模块 A:SSA-Planner (智能规划师)**
|
||
|
||
* **定位**:纯 NLP 应用,不涉及 R 计算。
|
||
* **输入**:自然语言 \+ (可选) 数据 Schema。
|
||
* **核心能力**:
|
||
* **意图澄清**:当用户指令模糊时,主动反问("您是想做差异分析还是相关性分析?")。
|
||
* **方案生成**:检索 RAG 库,生成结构化的 JSON 计划和 Markdown 报告。
|
||
* **交付物**:《统计分析计划书》 (PDF/Word)。
|
||
|
||
#### **🧩 模块 B:SSA-Executor (智能执行器)**
|
||
|
||
* **定位**:纯计算服务,无状态 API。
|
||
* **输入**:skill\_code \+ params \+ data\_source。
|
||
* **核心能力**:
|
||
* **混合数据加载**:支持 JSON 和 OSS 数据源。
|
||
* **护栏检查**:执行正态性、方差齐性检查。
|
||
* **结果交付**:生成三线表、高清图、R 源码。
|
||
* **技术备注**:**这部分完全复用原 V1.3 计划中的 R 服务开发内容。**
|
||
* **注意**:Executor 无法直接处理用户的自然语言。必须经由 Planner 将自然语言转化为结构化参数后,才能被调用。
|
||
|
||
#### **🧩 模块 C:统计配置中台 (Config Center)**
|
||
|
||
* **定位**:专家知识注入入口。
|
||
* **MVP 实现**:**Excel 导入工具**。
|
||
* **配置内容**:
|
||
* 工具定义(Name, Desc, Usage)。
|
||
* 护栏阈值(P \< 0.05)。
|
||
* R 代码模板(Glue Template)。
|
||
|
||
## **4\. 核心业务流程 (User Journey)**
|
||
|
||
### **流程一:智能分析模式 (Intelligent Analysis Mode) \- ⭐ 最常见场景**
|
||
|
||
**场景**:用户有数据,有模糊的意图(如“帮我对比一下差异”),希望一站式出结果。
|
||
|
||
**架构逻辑**:串联调用 Planner \-\> Executor。
|
||
|
||
1. **用户**:上传 data.csv 并输入:“帮我对比一下吸烟组和非吸烟组的体重差异”。
|
||
2. **Planner**(后台隐形介入):
|
||
* 读取 Data Schema,识别出 Group 和 Weight 列。
|
||
* 理解用户意图("对比差异"),结合变量类型(二分类 vs 连续),推荐“独立样本 T 检验”。
|
||
* 生成 Executor 能听懂的 JSON 参数。
|
||
3. **交互**:系统弹出 **\[ 方案确认卡片 \]**(由 Planner 生成)。
|
||
* *设计意图*:给用户一种“专家先审视,再执行”的安全感。
|
||
4. **用户**:点击 **\[ 确认并执行 \]**。
|
||
5. **Executor**:接收 Planner 的 JSON \-\> 跑 R 代码 \-\> 返回结果。
|
||
6. **用户**:获得结果。
|
||
|
||
### **流程二:纯咨询模式 (Consultation Mode) \- 科研设计场景**
|
||
|
||
**场景**:用户还没收集数据(无数据),在写开题报告或基金标书,需要设计统计方案。
|
||
|
||
**架构逻辑**:仅调用 Planner。
|
||
|
||
1. **用户**:“我想研究阿司匹林对心血管事件的影响,该怎么设计统计?”
|
||
2. **Planner**:检索知识库,生成《统计分析计划书 (SAP)》。
|
||
* 包含:研究假设、变量定义、推荐方法(Cox 回归)、样本量估算建议。
|
||
3. **用户**:下载 SAP 文档。**(流程结束)**
|
||
|
||
### **流程三:标准化复用模式 (Standardized Reuse Mode) \- 专家/高阶场景**
|
||
|
||
**场景**:
|
||
|
||
1. **复用**:上周生成了一个完美的 SAP,这周新数据来了,直接套用,不想再跟 AI 废话。
|
||
2. **专家下发**:科室主任定义好了标准分析流程,存为模板,研究生直接上传数据运行。
|
||
**架构逻辑**:跳过 Planner 推理,直接调用 Executor。
|
||
1. **用户**:上传 new\_data.csv,并从“我的方案库”中选择“肺癌生存分析标准模板”(或加载之前的 SAP ID)。
|
||
2. **系统**:自动校验新数据是否符合模板要求的列名(Schema Check)。
|
||
3. **Executor**:直接读取模板参数 \-\> 跑数 \-\> 出结果。
|
||
4. **用户**:下载结果。
|
||
|
||
## **5\. 接口与数据协议 (Schema)**
|
||
|
||
### **5.1 Planner 输出协议 (Plan JSON)**
|
||
|
||
这是连接 Planner 和 Executor 的契约。
|
||
|
||
{
|
||
"analysis\_id": "uuid",
|
||
"tool\_code": "ST\_T\_TEST\_IND",
|
||
"reasoning": "因变量为连续数值,自变量为二分类...",
|
||
"params": {
|
||
"group\_col": "Gender",
|
||
"val\_col": "BMI",
|
||
"conf\_level": 0.95
|
||
},
|
||
"guardrails": {
|
||
"check\_normality": true,
|
||
"action\_on\_fail": "switch\_to\_wilcoxon"
|
||
}
|
||
}
|
||
|
||
## **6\. 实施路线图 (Updated Roadmap)**
|
||
|
||
基于新架构,我们将开发顺序调整为 **“Planner 先行,Executor 并行”**。
|
||
|
||
### **Phase 1: 智能规划师上线 (Week 1-2)**
|
||
|
||
* **目标**:上线“统计咨询 Chatbot”。
|
||
* **后端**:开发 Excel 配置导入脚本;开发 Planner Service (DeepSeek)。
|
||
* **前端**:开发咨询模式 UI。
|
||
* **专家**:整理 Top 10 工具的 Excel 配置。
|
||
* *注:此阶段不需要 R 服务参与。*
|
||
|
||
### **Phase 2: 执行器与联调 (Week 3-4)**
|
||
|
||
* **目标**:打通计算闭环。
|
||
* **R 团队**:完成 Docker 封装、数据加载器 (Data Loader)、T 检验 Wrapper。
|
||
* **后端**:对接 R API,透传 Planner 的参数。
|
||
* **前端**:开发结果展示卡片。
|
||
|
||
### **Phase 3: 量产与优化 (Week 5+)**
|
||
|
||
* **目标**:覆盖更多工具。
|
||
* **R 团队**:批量复制开发剩余 9 个工具。
|
||
* **专家**:持续优化配置 Excel。
|
||
|
||
## **7\. 风险与应对**
|
||
|
||
| **风险点** | **影响** | **应对策略** |
|
||
|
||
| **Planner 瞎指挥** | 生成的参数 Executor 无法执行 | 引入 **Zod Schema 强校验**,参数不合法直接让 AI 重试。 |
|
||
|
||
| **数据列名不匹配** | R 代码报错 "Column not found" | 在 Executor 入口增加 **模糊匹配/同义词映射** 逻辑。 |
|
||
|
||
| **专家配置进度慢** | 阻塞 Planner 上线 | 提供标准模板,先配 1 个工具(T检验)跑通全流程。 |
|
||
|
||
## **8\. 结语**
|
||
|
||
这次架构调整不是推翻过去,而是**升维**。
|
||
|
||
我们保留了最核心的 **R 计算引擎 (Executor)**,它是我们的硬实力;
|
||
|
||
我们剥离出了 **AI 规划师 (Planner)**,它是我们的软实力;
|
||
|
||
我们引入了 **配置中台**,它是我们的护城河。
|
||
|
||
请大家基于此文档,放心开工。 |