Files
AIclinicalresearch/docs/03-业务模块/SSA-智能统计分析/06-开发记录/J技术报告审核评估与建议/外部架构调研总结与研发共识备忘录.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

5.3 KiB
Raw Blame History

SSA-Pro 外部架构调研总结与研发共识备忘录

文档定位: 研发团队的统一思想大纲与架构护栏

核心参考: 外部调研报告《医疗AI统计助手架构研究》、《智能统计分析助手开发探讨》

宣贯目标: 明确 SSA-Pro 智能化演进的“可为”与“不可为”,确立 Q-P-E-R 架构 的极简落地规范。

1. 行业前沿共识:我们面临的最大挑战是什么?

两份外部顶级调研报告一致指出,医疗 AI 统计分析面临一个根本性矛盾:

大模型LLM的“概率性生成经常出现幻觉” 与 医学统计学要求的“100% 确定性(绝对严谨)” 之间的冲突。

如果任由大模型自由发挥(如直接写代码计算 P 值),极易导致致命的学术错误。

💡 破局之道LLM 的“哑铃型”选择性部署

报告为我们指明了业界最佳实践:“两头用 AI中间用规则”

  • 两头Q层 & R层:利用 LLM 强大的自然语言处理能力,听懂医生的“大白话”,写出漂亮的“学术结论”。
  • 中间P层 & E层:利用传统软件工程的“决策表”和“固定代码库”死死管住执行逻辑,绝不容许 AI 产生幻觉!

2. Q-P-E-R 四层架构的具体落地规范 (Actionable Guide)

为了将高大上的理论转化为我们初创团队可以马上写的代码,请开发团队严格遵循以下落地规范:

🟢 Q层 (Query) - 意图理解与澄清

  • 调研精髓:医生缺乏统计学术语,输入充满模糊性。不要让 AI 瞎猜。
  • 开发规范
    1. 结构化槽位提取LLM 的任务是做“翻译官”,将自然语言翻译成 JSON 格式的统计特征(如 {"goal": "difference", "y_type": "numeric"}),而不是直接选工具。
    2. 动态意图澄清 (Human-in-the-loop):当 LLM 发现意图不明确时(信心度 < 0.8),后端立即中断流程,返回前端一个带选项的卡片(如:👉[比较差异] 👉[相关分析]),让用户点击选择。

🟡 P层 (Planner) - 方案规划

  • 调研精髓:应对海量工具的 Context 爆炸,以及防止 AI 选错统计方法。
  • 开发规范
    1. Tool RAG 动态检索:在组装 Prompt 前,先用 pgvector 检索出最相关的 Top-5 工具定义喂给大模型,节省 Token 并提高准度。
    2. 硬编码决策树兜底 (Rule-based)严禁 AI 自由决定统计方法。后端代码必须引入基于 Excel 导出的决策表。拿到 Q 层的 JSON 后,用 if-else 规则精准匹配出唯一的 Tool_Code如 ST_T_TEST_IND

🔵 E层 (Execute) - 代码执行

  • 调研精髓:用户需要的是完整的分析流程,以及绝对安全的运行环境。
  • 开发规范
    1. 工作流模板 (Workflow Templates):不要指望 AI 去拼接多步操作。我们将底层的单个 R 脚本升级为“套餐”。例如 T 检验的 R 脚本内应包含 [基线描述 -> 正态性护栏检查 -> 核心计算 -> 画图] 完整动作Node.js 只需发起一次调用。
    2. 安全隔离:继续使用当前的 R Docker + Plumber API 提供服务,通过内网 OSS 传递数据。

🟣 R层 (Reflection) - 结果反思与自愈

  • 调研精髓AI 执行必然会报错,必须具备遇到 Error 自动修复的能力。
  • 开发规范
    1. 参数级靶向自愈 (Self-healing):当 R 容器报错如“找不到年龄列”Node.js 捕获 500 错误,将报错信息抛给 LLM。警告:只允许 LLM 修改参数 JSON 重新请求,绝对禁止 LLM 现场重新生成一坨 R 代码来跑。
    2. 论文级严谨解读Critic Agent 根据 R 吐出的 P 值,利用预设的 Prompt 约束(严禁使用“证明了”等词),生成结构化的学术解读。

3. 架构红线:我们要坚决摒弃的“大厂陷阱”

外部报告提到了很多高级名词,但作为追求敏捷交付的团队,我们坚决不碰以下过度工程化的方案:

拒绝引入 LangGraph/AutoGen 等复杂编排框架

我们现阶段的 QPER 流程是一个清晰的“带重试的线性流水线”。用 Node.js 原生的 while 循环和 try-catch 就能实现完美的编排,并且更容易控制前端的 SSE 状态流。

拒绝引入微虚拟机 (Firecracker) 沙箱

因为我们坚持了“调用内部固定的 R 脚本”而不是“执行 LLM 现场写的随意代码”,我们天然避开了 RCE远程代码执行的最高风险。现有的 Docker 容器隔离已经足够安全。

拒绝多智能体辩论 (Multi-Agent Debate)

医疗统计有明确的数学定理,正态性 P < 0.05 就是不满足。我们用“硬编码的 R 语言护栏”来保证正确性,不需要浪费 Token 让两个 LLM 互相辩论。

4. 总结寄语

这份调研报告是对我们目前技术路线的最高级别肯定!

它证明了我们在坚持的 “规则匹配 + LLM推理 + 标准化执行库” 模式,正是解决医疗 AI 痛点的终极答案。

请大家不要有任何技术栈焦虑,用最熟悉的 Node.js 和 R用最扎实的 if-else 配合优秀的 Prompt去打造业界最严谨、体验最好的智能统计助手