Files
AIclinicalresearch/docs/03-业务模块/SSA-智能统计分析/06-开发记录/J技术报告审核评估与建议/架构审查报告:Phase 2A 核心开发计划 .md
HaHafeng 371e1c069c feat(ssa): Complete QPER architecture - Query, Planner, Execute, Reflection layers
Implement the full QPER intelligent analysis pipeline:

- Phase E+: Block-based standardization for all 7 R tools, DynamicReport renderer, Word export enhancement

- Phase Q: LLM intent parsing with dynamic Zod validation against real column names, ClarificationCard component, DataProfile is_id_like tagging

- Phase P: ConfigLoader with Zod schema validation and hot-reload API, DecisionTableService (4-dimension matching), FlowTemplateService with EPV protection, PlannedTrace audit output

- Phase R: ReflectionService with statistical slot injection, sensitivity analysis conflict rules, ConclusionReport with section reveal animation, conclusion caching API, graceful R error classification

End-to-end test: 40/40 passed across two complete analysis scenarios.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 18:15:53 +08:00

76 lines
5.9 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.
# **架构审查报告Phase 2A 智能化核心开发计划**
**审查对象:** 《07-Phase2A-智能化核心开发计划.md》
**审查时间:** 2026-02-20
**审查结论:** 🌟 **极度卓越 (S级计划)**。战略聚焦精准,架构切分合理。准予作为下阶段最高优先级执行,但需注意防范三大工程暗礁。
## **一、 架构师的高度赞同 (What You Did Exceptionally Well)**
### **1\. 极其明智的“断舍离” (Postponing the Config Center)**
把“配置中台”和“100个工具的量产”延后是整个计划最亮眼的一笔。
在核心编排逻辑Orchestration跑通之前去开发配置中台的 UI 是纯粹的浪费。在 Phase 2A 阶段,**“配置即代码 (Configuration as Code)”** 是最佳实践。直接用 TypeScript/JSON 文件来硬编码这 7 个工具的配置,速度最快,修改成本最低。
### **2\. 五大组件的精妙解耦 (The 5-Component Agentic Pipeline)**
你们将原本耦合的 Planner 拆分成了 Data Profiler \-\> Intent Parser \-\> Tool Router \-\> Plan Generator \-\> Result Synthesizer。
这是教科书级别的 **大模型工作流 (LLM Workflow) 设计**!大模型在处理单一、确定性任务时幻觉极低。将一个庞大的 Prompt 拆分成 5 个职能单一的微型 Prompt是保证系统每次都能输出稳定 SAP 计划的唯一解。
### **3\. 完美的“7 剑客”工具选型 (The Golden 7 Tools)**
选出的 7 个工具基线表、正态、T检验、秩和、卡方、相关、线回不是随便挑的它们恰好构成了一个完整的\*\*“临床基线分析 \+ 单因素推断”\*\*的业务闭环。如果能把这 7 个串联好,已经能解决医学研究生 60% 的毕业论文统计需求。
## **二、 工程暗礁与避坑预警 (Critical Warnings & Gotchas)**
计划虽好,但在具体写代码时,这 5 大组件和多工具串联极容易在以下三个地方“翻车”:
### **🚨 暗礁 1Result Synthesizer 的“上下文爆炸” (Context Window Blowup)**
* **计划描述**:将多个工具的执行结果收集起来,交给 Result Synthesizer (LLM) 生成综合结论。
* **潜在灾难**R 语言跑出来的原始 JSON 可能极大。比如做线性回归如果把几百个残差值Residuals或者巨大的离群值数组都打包成 JSON 发给大模型,会导致 LLM Token 超载,响应极慢甚至直接报错。
* **架构强制要求**
在封装这 7 个 R 工具时,**必须严格限制 R 脚本的输出规模**。R 脚本返回的 JSON 只能包含P值、统计量 (t/F/chi-sq)、置信区间、核心系数 和 前端渲染图表所需的精简坐标点。**绝对禁止返回包含原始全量数据的长数组。**
### **🚨 暗礁 2Data Profiler 的“Node.js 内存刺客” (The Node.js OOM Trap)**
* **计划描述**Data Profiler 需要提取数据特征(如均值、缺失率)。
* **潜在灾难**:如果由后端的 Node.js 去遍历解析 50MB 的 CSV 来算均值和缺失率Node.js 极易发生 OOM内存溢出导致容器崩溃。
* **架构强制要求 (已修正为 Python 方案)**
不要在 Node.js 里做重度数据探测!**强烈建议复用团队现有的“工具C (Python 智能数据清洗模块)”** 来充当 Data Profiler 的物理执行层。
工作流应该是:用户上传数据 \-\> Node.js 调起 **Tool C 的 Python 微服务** 执行高并发的数据探测 \-\> 快速返回各列的数据类型、缺失率、枚举值分类 \-\> 将这个轻量级的 Schema JSON 喂给 LLM 规划师。
*(注Tool C 的 Pandas/Polars 在处理数十 MB CSV 的 I/O 和基础统计上,性能远超 R且完全复用了团队已有的异步架构与性能优化资产完美实现了“Python 主内搞数据R 主外做统计”的分工。)*
### **🚨 暗礁 3多工具编排中的“半路崩盘” (Partial Failure Handling)**
* **计划描述**Plan Generator 制定好顺序(如:正态检验 \-\> T检验然后依次执行。
* **潜在灾难**如果第一步“基线表”跑成功了第二步“T检验”因为某个极端数据报错了整个流程是全部崩溃还是能保留基线表的结果
* **架构强制要求**
在设计流程执行器Executor必须采用 **“容错管道 (Fault-Tolerant Pipeline)”**。
任何一个工具报错,不应该导致整个 Workspace 崩溃。系统应该能在右侧 UI 渲染出:
✅ 基线表 (执行成功, 点击查看)
❌ T检验 (执行失败: 方差为0, 点击查看原因)
让用户依然能拿到部分成果,这才是顶级商业软件的体验。
## **三、 对 Phase 2A 代码落地的一点补充建议**
为了配合 V11 双屏前端原型的“魔法效果”,建议在后端的串联逻辑中加入 **“Server-Sent Events (SSE) 状态推送”**
当后端正在顺序执行这 7 个工具时,不要让前端傻等 10 秒钟。后端执行完一个工具,就通过 SSE 往前端推一个状态:
1. {"status": "running", "step": "ST\_TABLE1", "msg": "正在绘制基线特征表..."}
2. {"status": "running", "step": "ST\_NORMALITY", "msg": "正在执行 Shapiro-Wilk 正态性检验..."}
3. {"status": "completed", "final\_report": {...}}
前端接收到这些状态后,就能在 V11 原型的 ExecutionViewer那个黑色的终端日志框里一行行打出逼真的执行日志**这不仅安抚了用户的等待焦虑更把系统的“专业AI感”直接拉满**。
## **四、 总结**
你们的 Phase 2A 计划是一份直指问题核心的“作战地图”。
去掉了“配表”的枯燥直面“AI 编排”的挑战,并且聪明地联动了已有的 Python 资产。只要在数据探测和结果回传上做好**数据量的裁剪(卡死 Token 上限)**,这个 Phase 2A 交付后SSA-Pro 将真正在技术上具备叫板主流数据分析 AI Agent 的底气。
**同意按此计划全面打响 Phase 2A 战役!祝团队旗开得胜!**