客户甩过来一摞手写体检单,让我把数据录入系统。扫了一眼,血压、血糖、尿酸,字迹跟医生开的药方似的,龙飞凤舞。第一反应是骂娘,这得录到猴年马月?时间就是金钱,我这把年纪(39了)的时薪,不是用来干这个的。
直接上 GPT-4o 的视觉识别。拍了几张照片扔进去,结果血压的“120/80”能识别成“120180”,血糖的“6.5”能看成“G.5”。这不行,误差率太高,返工成本比手填还高。得设计一个校验逻辑,不能让它一次性输出结果就完事。
我的思路是“自检循环”。不是让 AI 一次性识别整张图,而是拆成三步走。第一步,先让 GPT-4o 把图片里所有可能是数字和单位组合的区块给我圈出来,用坐标定位。比如,找到“血压:”后面的那个区域,找到“空腹血糖:”旁边的区域。这一步它干得还行,毕竟找“可疑区域”比直接认字容易。
第二步,才是核心。我把圈出来的每个小区域图片,单独再喂给 GPT-4o,但这次给它的指令变了。我不问“这是什么字”,我问“这是血压值吗?如果是,请按‘收缩压/舒张压 mmHg’格式输出;如果不是,请输出‘NOT_BP’”。对血糖、尿酸等其他项目也一样,一个问题只针对一个项目做“是或否”的格式化工序。这叫“强制分类识别”,用格式倒逼准确性。
但这样还有漏网之鱼。所以有第三步,也就是“循环”部分。我会把第二步所有识别出来的结果,拼成一个结构化的字符串,比如“BP:120/80, GLU:6.5, UA:350”。然后,把这个字符串和原始图片,再一次交给 GPT-4o。这次指令是:“这是根据图片识别的结果,请逐项核对,是否有明显不合理之处?例如,血压舒张压是否可能高于收缩压?血糖值单位是否为 mmol/L 且数值是否在常见范围(比如1-30)内?如有不合理项,请标记‘REVIEW’并指出项目。” 它有时候能发现一些上下文矛盾,比如把尿酸单位错认成血压单位。
发现 REVIEW 项,我就把对应区域的图片,再丢回去做第二步,但这次会附加一条提示:“上一轮识别可能错误,请特别注意类似‘7’和‘1’、‘5’和‘6’的手写体区别。” 通常两到三轮循环下来,准确率能从最初的不到70%拉到95%以上。剩下的极少数疑难杂症,才值得我人工介入看一眼。
这套流程我用 n8n 搭起来了。手机拍照自动上传到云盘,触发工作流,调用 OpenAI API 跑这个“识别-分类-复核”的循环,最后把清洗好的数据写入 Google Sheets,再同步到客户的系统里。整个流程,我只需要按一下拍照键。前期调试这个循环逻辑花了大概两天,但之后处理几百张单子,就是全自动的。
以前我迷信技术栈,觉得会 Python 写爬虫、会用 Selenium 自动化就是效率。现在看,那种是“体力自动化”,还是自己在跟代码较劲。GPT-4o 这种是“脑力自动化”,我把识别、判断、纠错的逻辑设计好,它就能像有个不知疲倦的初级助理一样去执行,而且这个助理还懂一点医学常识(来自它的训练数据)。关键不是它一次性能做多对,而是我设计的这个“自检循环”机制,让它具备了容错和迭代的能力。这感觉就像从自己拧螺丝,变成了设计一条流水线,虽然还得盯着,但心力消耗完全不是一个级别。
39岁,还在跟手写体较劲,说出去有点滑稽。但没办法,客户的需求就是这么 dirty。好在,现在我有办法让机器去消化这些 dirty work,而不是消耗我自己。这大概就是 2024 年,一个老产品经理的生存之道:不拼手速,拼系统设计。














