我手上有批数据要迁:一千多条物料,从旧系统的格式转到新系统。两边字段对不齐,命名习惯也不一样,还有一些历史遗留的脏数据。

人工一条条改,不现实。直接丢给 AI 让它转,我不放心。

最后我用的办法是:先写一份规则文件,再让 AI 照着跑。

为什么不能让 AI 直接干

不是能力问题。现在的模型处理这种格式转换,准确率比我高。

问题在于它会把不确定的地方”合理”掉。

举个具体的:某条数据有个字段值是空的。人看到会停下来想——这个字段是本来就没有,还是漏采了?AI 看到了,大概率会根据上下文猜一个最合理的值填进去,不告诉你。

等我发现的时候,几百条数据已经转完了,我根本看不出哪几条是它猜的。

我把 AI 编程工具当成了替代品,这是最大的错误 里我写过类似的判断:AI 出错不可怕,可怕的是它出错的方式很像一个正确的结果。批量数据处理把这个问题放大了——一次猜错,就是几百条。

所以我需要的是一套机制,让它在不确定的时候必须停下来问我,而不是自己决定。

规则文件里写什么

我的规则文件不长,就三块内容。

一、字段映射

旧系统的每个字段对应新系统的哪个字段,写清楚。对不上的单独列出来,标注”待确认”。

旧字段        新字段         处理方式
物料编码  →    material_code   直接映射
规格型号  →    spec            直接映射
单位      →    unit            需转换(见下方对照表)
旧分类    →    category        待确认(见异常清单)

这部分是最枯燥的,但也是最有价值的。因为写的时候你会发现:有些字段你以为知道怎么转,写出来才发现自己没想清楚。

二、转换规则

需要计算的、需要查表的、需要格式化的,逐条写死。

比如单位换算,旧系统用”KG”,新系统要”千克”,那就写明白。别指望 AI 每次都推导出同样的结果——它可能这次写”千克”,下次写”kg”。

三、异常定义

这部分最关键。我明确列出什么情况算异常,以及遇到异常不许猜,要报回来。

  • 必填字段为空
  • 编码格式不符合规范
  • 同一编码对应多条不同记录
  • 出现规则文件里没覆盖的分类

报回来的形式是清单:行号、原始值、问题类型。我看了再决定怎么处理,然后把处理方式补进规则文件,让下一轮跑的时候能自己处理同类情况。

三条我坚持的规矩

跑了几批之后,有三条是我不让步的。

批量转换之前,先确认字段映射。 哪怕规则文件写得很完整,正式跑之前也要让 AI 把映射表复述一遍,我确认了再开工。这一步花五分钟,能挡掉大部分返工。

异常项主动记录回报,不许静默处理。 每批跑完必须有一张异常清单,哪怕清单是空的也要说一声”没有异常”。空清单本身也是信息——它说明这批数据很干净。

规则文件是活的。 每处理完一类异常,就把处理方式补进去。跑到后面,规则文件越来越厚,需要人工介入的越来越少。它不是一次性的说明书,是沉淀。

为什么不让 AI 自己维护规则文件

我试过让它每轮跑完自己更新规则文件。结果是它会把某一次的临时判断写进规则,下一批数据情况不同,规则就错了。 规则文件现在只能我改,或者它改完必须经过我确认。

这个方法真正好用的地方

不是让 AI 跑得更快——其实因为要停下来问,反而慢了。

好用的是它逼我把规则想清楚。

写规则文件的时候,我发现很多”模糊项”不是数据的问题,是我自己没想明白。比如某个分类在新系统里到底该归到哪,我一直以为到时候看着办,等要写进文件了,才发现必须现在就决定。

方法论不是学来的,是自己长出来的 里那个判断在这里又应了一次:这套规则不是我提前设计好的,是第一批数据跑挂了之后,被迫补出来的。

一个边界

这个方法适合格式固定、规模大、容错低的活:数据迁移、批量重命名、格式转换这类。

不适合一次性、小规模的事。三五条数据,直接改比写规则文件快。

也不适合需要判断力的事。如果每条数据都要靠理解上下文才能处理,那规则文件写了也白写,不如自己来。

判断标准就一条:这件事你会重复做第二次吗? 会,就值得写规则文件。

继续阅读Continue Reading

关于本文About

评论Comments

留下你的想法

欢迎在下方评论区留下你的看法,一起把话题聊得更深。

COMMENTS