去年美国医生平均每周花19小时处理行政事务,比看病人时间还多。有人把AI塞进这个缝隙,不是替代诊断,而是把"写病历、看化验单、给患者发消息"这套流水线自动化——关键是,它给自己上了三道锁。
这套系统叫AI Physician Assistant,作者是个全栈开发者,代码开源在GitHub。我扒完架构后发现一个反直觉的设计:它故意让自己"慢"下来。
第一层:化验单不是"读"的,是"拆"的
系统拿到PDF化验单后,先过OCR(光学字符识别)提取文字。但这里有个陷阱——化验单格式五花八门,有的把参考范围写在括号里,有的用箭头标高低,有的干脆只给数值。
作者没让AI直接"理解"全文,而是做了结构化提取:数值、单位、参考范围、异常标记,拆成四列数据表。这一步用Python的pdfplumber和正则表达式硬抠,不碰大模型,零幻觉风险。
拆完之后才轮到GPT-4上场。系统给它的prompt(提示词)极其克制:只准基于刚才的数据表判断,禁止发散。输出格式强制JSON,包含三个字段:异常项列表、临床意义简述、建议随访标记。
作者原话:「我让模型像医学生写病例摘要,只陈述事实,不做诊断。」
第二层:给患者的话,得先过"安检"
最精妙的环节在这里。系统生成给患者的消息草稿后,不直接发,而是启动一个独立的Safety Agent(安全代理)。
这个代理的设计很"轴":它和生成草稿的模型完全隔离,用另一套prompt专门挑刺。检查清单包括——有没有未经医生确认的用药建议?有没有吓到患者的表述?有没有漏掉"请与医生讨论"的免责声明?
作者打了个比方:「就像制药公司的QA部门,生产线和质检线必须物理分开。」
如果Safety Agent flagged(标记)任何问题,草稿打回重写,最多循环3次。3次还不过,系统放弃自动生成,把原始化验单推给医生手动处理。宁可漏掉自动化,不冒一次风险。
这个设计直接回应了医疗AI的痛点。2023年JAMA有项研究,大模型在开放场景下给医疗建议,15%的回复包含潜在有害信息。作者的做法是——不给它"开放场景",用流程硬约束。
第三层:医生有一票否决权,但系统会"记仇"
所有通过Safety Agent的消息,最终进入模拟发件箱,等医生点"发送"。作者特意做了埋点:医生修改了哪些地方?直接删掉了多少?有没有把"建议随访"改成"立即就诊"?
这些数据回流到评估体系。如果某类化验单的草稿被医生大规模修改,系统自动降低该类任务的置信度阈值,下次更保守。
作者说:「这不是强化学习,是强化'听话'。」
整个架构用了5个核心组件:Document Parser(文档解析器)、Lab Analyzer(化验分析器)、Message Generator(消息生成器)、Safety Agent(安全代理)、Human Review Queue(人工审核队列)。每个都是独立服务,用Redis队列串起来,一个崩了不影响其他。
技术选型上,作者没追新。向量数据库?没用,化验单结构固定,传统关系型数据库够用了。多模态大模型?没用,OCR+结构化提取更可控。LangChain?作者原话:「我读了源码,发现我要的控制流它给不了,自己写状态机更干净。」
这个选择背后有个产品判断:医疗场景要的是"可审计",不是"智能"。每个决策节点留日志,每个模型输出可回溯,比少写两行代码重要得多。
我注意到一个细节。系统的Safety Agent prompt里写了这么一句:「如果消息包含任何可能被视为诊断的内容,拒绝通过。」但化验分析器之前已经输出过"临床意义简述"——这算不算诊断?
作者的解法很产品经理:把"临床意义简述"限制在3句话以内,只描述化验指标本身,不关联症状,不预测疾病。模糊地带用规则硬切,不留给模型自由发挥的空间。
这套系统目前还是演示性质,没进真实临床环境。但作者放出的数据有意思:在100份模拟化验单测试中,Safety Agent拦截了23份草稿,其中17份确实包含问题(经医生标注确认),6份是误杀。17/23的精确率,在医疗安全场景下算可接受——宁可误杀,不可漏网。
更值得关注的是医生的反馈。作者找了3位家庭医生试用,他们修改草稿的平均时间从8分钟降到2分钟,但"直接发送"的比例只有31%。医生说:「它写得比我快,但比我乐观,我得把'大概率没事'改成'建议复查'。」
这个张力指向一个核心问题:AI医疗助手的价值到底是"省时间"还是"保安全"?作者的架构试图两头兼顾,但现阶段显然偏向后者——三层安全网的设计,本质上是用流程复杂度换信任度。
开源社区的反应验证了这点。GitHub上最多的issue不是功能请求,是问"Safety Agent的prompt能不能再严格一点"。有人甚至提议加第四层:患者收到消息后,系统再发一条确认短信,问"您理解这条消息的意思吗?"
作者没采纳。他的理由是:每加一层,医生的认知负担就重一分。现在的设计是"系统保守、医生轻松",再加一层变成"系统保守、医生也累",就本末倒置了。
这个权衡很产品经理。我查了下,作者之前做过电子病历系统的UX设计,拿过HIMSS(医疗信息学会)的奖项。那段经历显然影响了现在的架构——技术方案里能看到对"医生 workflow"的尊重。
最后说个彩蛋。系统的模拟发件箱界面,作者抄了Gmail的草稿箱设计,连"发送"按钮的蓝色色值都一样。他说:「医生每天开Gmail,别让他们学新界面。」
如果这套系统真的进医院,你觉得Safety Agent的拦截阈值该由谁定——工程师、医生,还是医院法务?
热门跟贴