医疗健康 / 体检服务 / 某年服务数十万体检场次的连锁体检机构客户

体检报告 AI 流水线:把生成链路收回到规则边界内

体检报告里的科普、建议、智能推项和矛盾识别不能只追求生成速度,真正的问题是输出边界、机构文书风格、本院项目映射和假矛盾误报都必须被工程化约束。

  • Python
  • vLLM
  • GPT-OSS 120B
  • Coze
  • SSE
方案

我参与并维护了这套报告流水线中的部分生成链路,把智能推项、科普、建议和矛盾识别拆成独立约束流程,用本院库反查、规则集、三段式审核链和豁免清单收紧模型输出边界。

架构

用户画像与问卷 -> 智能推项的思考、抽取、检索、映射与质检 -> 科普与建议规则生成 -> 四路并发矛盾识别 -> 二次审核与豁免 -> SSE 返回结果。

结果

系统形成了覆盖智能推项、科普、建议、矛盾识别 4 个场景的报告流水线方案;推项链路加入本院库反查后,不存在的项目编码和价格不会继续透传;矛盾识别沉淀了 13 个具名假矛盾豁免案例,科普和建议侧也分别固化了禁词与文书风格规则。

这类项目最难的地方,不是让模型把一句话写出来,而是别让一段“看起来合理”的话直接进入体检报告。

背景

这套系统服务于某年服务数十万体检场次的连锁体检机构客户,场景不是通用问答,而是体检报告流水线里的四类生成任务:体检前的智能推项,报告阶段的科普、主检建议,以及报告内部自洽性的矛盾识别。

上一代基本没有成型的规则系统。“科普 + 建议”过去需要医生人工撰写,单份大约 3 分钟。规模一上来,问题就不只是人手够不够,还包括不同医生写法不一致、机构对外文书风格不统一、模型措辞越界,以及幻觉内容进入报告后的责任边界。

真正麻烦的地方

这四个场景表面上都在“生成内容”,但麻烦完全不同。

智能推项不能只给出像样的项目名。客户要的是本院真实可挂、可计费、可展示的项目。如果模型编出了不存在的 projectId、编码或价格,问题会直接传到前端或报告里。

科普也不能只是“说得通”。像那种过于肯定、带安抚意味的表述,即使模型主观上是在帮用户放松,也会把机构文书边界带偏。

建议生成的难点更像写作规范控制。内容大致正确还不够,句式要像机构医生写在体检报告里的建议,而不是像聊天机器人临时组织的一段话。

矛盾识别则是另一种麻烦。很多体检报告里的“冲突”并不是真冲突,而是模板差异、医学可共存表述,或者业务规则导致的正常写法。比如血压原始值异常,但只要一次复测正常,业务上就可以写“血压正常”。如果模型只盯着单个数值,很容易报出假问题。

我负责的部分

在这套系统里,我的角色更接近参与和持续维护部分关键链路,而不是把整套系统写成“我从 0 到 1 主导”。

我参与了智能推项链路的工程拆分,把它拆成思考、抽取、检索、映射、质检几段,再把模型产出的项目字段拿回本院项目库做反查。对不上的内容直接清空关键字段,宁可少展示,也不让模型编出的项目编码和价格继续透传。

在科普和建议侧,我参与整理和维护 prompt 规则,把一些实际会出边界问题的表达做成硬约束。科普侧固化了 5 条强禁词;建议侧把“三选一”“一条建议一个科室”“排除急诊科”“复查时间用阿拉伯数字”等规则压进输出口径里,目标不是让句子更花,而是让机构文书更稳。

在矛盾识别侧,我参与维护过四路并发和三段式 LLM 链:先做自然语言分析,再抽成结构化 JSON,最后做二次审核和豁免。针对真实遇到的误报,规则里沉淀了 13 个具名假矛盾豁免案例,也把血压复测这类高频边界反复写进 prompt 和审核逻辑里。

方案与取舍

这套流水线的核心思路,不是用一个大模型把四个场景一次性包掉,而是把每个场景收回到不同的约束方式里。

智能推项链路里,模型只能负责提出候选,不能负责定义“本院到底有什么项目”。项目映射后还要再经过 quality_control 反查,对不上就清空。这个做法会牺牲一部分表面覆盖率,但它换来的是更清楚的责任边界。

矛盾识别链路里,项目没有停在“让模型判断有没有矛盾”这一步,而是拆成分析、结构化和复审三段。结构化输出最多重试 5 次,并把上轮输出带回上下文,目的是减少模型一次没按 JSON 规范输出就把整条链路打断的情况。

另一个比较实际的取舍发生在工作流平台上。项目早期尝试过用 Coze 承担更完整的编排,后来退回到“主推理走 vLLM,Coze 只承接检索类子任务”的组合。原因不是平台不能用,而是这类业务的复杂度主要在规则约束、误报处理和输出边界上。如果把这些都堆进工作流节点里,编排本身会变成新的复杂度。后续客户内网部署时,Coze 代码节点沙盒冷启动约 3 秒/次,也让这个取舍更明确了。

最后一个取舍是,有些能力可以做,但不值得在这个阶段做重。比如历史矛盾分支后来被注释禁用,就是因为它会把更长的历史数据带进上下文,放大注意力稀释和幻觉风险。这里选择先收缩边界,而不是为了“功能更全”硬保留。

结果与边界

最终形成的是一套覆盖智能推项、科普、建议、矛盾识别 4 个场景的报告流水线 AI 方案。和上一代“无规则系统 + 医生人工撰写”相比,这套系统至少把四类任务都收回到了可工程化约束的链路里。

已经确认能公开的结果主要有几类。第一,智能推项链路加入了本院库反查,对不上的项目字段会被清空,不让不存在的项目编码、名称和价格继续透传。第二,矛盾识别沉淀了 13 个具名假矛盾豁免案例,并对血压复测、参考区间边界等场景加入了特殊规则。第三,科普和建议侧分别固化了强禁词、建议类型和文书风格约束。

这类案例我不会把它写成“AI 已经完全替代医生写报告”。当前可公开信息没有确认生产覆盖率、误报率、漏报率和节省人力数字,所以这里也不拿未经确认的数据去包装结果。更准确的说法是:我参与并维护的这部分工作,把原本容易漂移的生成任务,收回到了更适合医疗文书场景的规则边界内。

如果你在做医疗文书生成、审核链路或高风险场景下的 Agent 工作流,可以通过页面下方微信二维码或邮件沟通,邮箱:contact@aildnc.com

相关链接

联系

讨论类似项目

如果你正在评估类似的文档解析、企业 RAG、知识库或 AI 工作流,可以先发问题背景。 微信沟通优先,邮箱也可以:contact@aildnc.com。

微信二维码 扫码加微信沟通