-
fix(ai): 历史联系摘要只讲回访事实,不再对到诊/失联下结论 · 469ef2c9
生产实例(陈芃霖 BJ0A094257): 摘要「上次**有效到诊**为2023年8月,已超一年未复诊」 实际 接诊记录末次 2025-12-20,画像也写着「末诊207天」—— 差 2 年 4 个月 同句另两处错:「已超一年未复诊」实为 7 个月;「近3个月涂氟邀约」那条回访实为 226 天前。 源头是这条回访记录: 2023-08-15 | 常规回访 | 已回访 | 已完成 | 内容:复查 | 结果:8月已就诊 诊所客服 2023 年写的一句备注,被模型升格成了患者当前的到诊状态。「有效到诊」这个词 源数据里没有,是模型自己造的。 ── 根因 ── 本 AiCall 的输入**只有回访记录,没有任何到诊数据**(见 input.types)。模型只能: ① 从回访备注文字里猜到诊 —— 「8月已就诊」被当成事实 ② 用"没有回访记录"推"没来过" —— 但回访是诊所主动打电话,患者自己来院不产生回访任务 两条路都错。而旧 prompt 不但没拦,关键要求 4 明写「优先突出…长期未到诊」, 示例里还有「此前半年 5 次回访无到诊」在**示范这个错法**。 ── 生产规模 ── 795 条 recall_history 摘要,162 条断言"失联/沉睡/未到诊", 其中 88 条(54%)患者实际 180 天内来过,18 条 90 天内来过。 最离谱一条:「自2018年至今无到诊或有效联系,属长期失联状态,建议优先核实联系方式」 —— 该患者 2026-06-24 刚到诊,上个月的事。客服照这个打电话会很尴尬。 ── 改法(按业务口径「这里只摘要回访事实」)── 不给它喂到诊数据,而是划清职责:到诊状态有专门的地方出(画像卡「末诊 N 天」按真实接诊算)。 1) prompt 加【职责边界】硬约束:输入里没有到诊数据,禁止判断是否到诊/失联/沉睡; 结果字段里的"已就诊"只能当那次回访的记录引述,不得当成到诊状态; 明确掐断"没有回访 ≠ 没来过"这条推理链 2) 修掉关键要求 4 和示例里示范错法的句子,新增反例段(把三条真实事故句列为 ✗) 3) 补程序算好的 daysAgo —— 相对时间不让模型自己减日期 4) 版本 @2026-07-26-f → @2026-07-27-g ── 这是同一个错误第三次以不同形式出现 ── 07-24 是"未来 vs 过去"(未来排程被说成漏做),今天是"回访 vs 到诊"和"距今多久"。 当初立的纪律是「能程序算的事实全算好、LLM 只润色」,但只补了一个轴, 于是同类错误换个轴又来。本次把职责边界和 daysAgo 都用测试锁住(新增 8 例)。 注:已生成的 795 条摘要是缓存,需另行重刷才会用新 prompt; 本次先删了陈芃霖那一条供业务观察重新生成效果。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>luoqi committed
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| call.ts | Loading commit data... | |
| input.types.ts | Loading commit data... | |
| prompt.ts | Loading commit data... | |
| schema.ts | Loading commit data... |