跳至正文

今天用AI干了一下午重复活儿,我差点感动哭

先交代一下背景吧。我们团队最近在搞一个老项目的文档迁移,就是那种几百个Excel表格要转成统一格式的Markdown文件,然后把里面的人名、日期、金额这些字段重新整理一遍。以前干这活儿至少要两个人对着一周,而且还得盯着屏幕看到眼睛冒血丝。今天下午我实在不想手动复制粘贴了,就想着能不能让AI来干。

我用的工具是Claude 3.5 Sonnet,配合Python写了个脚本。一开始我挺乐观的,觉得直接把Excel丢给AI就完事了。结果发现这玩意儿没我想的那么简单。第一个坑就是编码问题,那批Excel文件是GBK编码的,我直接pandas.read_excel()报错了,报错信息是”UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xc0″。后来加了个encoding=’gbk’的参数才搞定。这一步就浪费了我20分钟,期间我还骂了一句”微软你他妈搞什么GBK”。

数据读进来之后,真正的痛苦才开始。每个Excel的列名都不一样,有的叫”客户名称”,有的叫”客户姓名”,还有的叫”客户名”、”名称”、”姓名”……一共十几种变体。手动写规则映射的话,光这一项就得写几十行if else,而且肯定有漏掉的。我直接把这堆列名扔给Claude,让它帮我识别哪些列是同一个字段。我给的prompt大概是这样的:”以下是一批Excel表格的列名列表,请你根据语义判断哪些列属于同一字段(比如客户名称、客户姓名都是同一字段),输出一个映射关系字典。” 结果它真的给我列了一张表,把”日期”、”时间”、”发生日期”、”业务日期”这些都归到”业务日期”字段下面了。我拿着这张映射表写了个函数,一行代码替换就完事了。

数据清洗这块也让我头疼。那些老Excel里面,日期格式五花八门,有”2024/01/15″、”2024-01-15″、”2024.01.15″、”20240115″、”15/01/2024″这种,甚至还有”2024年1月15日”的。金额字段更离谱,有的带逗号分隔,有的带”元”字,有的干脆是中文大写”壹万贰仟叁佰肆拾伍元陆角柒分”。手动处理这些数据我去年干过一次,干到第三天的时候差点把电脑砸了。这次我让AI帮我写了一个数据清洗函数,用了正则表达式加日期解析库,基本上20行代码就搞定了所有格式。当然不是一次成功的,中间报过几次错,比如有一个日期字段里混入了”2024/02/30″这种根本不存在的数据——2月哪来的30号,这Excel谁填的给我站出来。好在AI很快帮我加了个异常处理,把这些坏数据单独提出来写进一个错误日志文件里,我后续手动补一下就行。

最有意思的是处理那些备注字段里的非结构化文本。比如有一列叫”备注”,里面有人写”客户说下周付款但不确定”,有人写”已催三次无回应”,还有人写”发票已开,待签收”。我需要把这些内容分类到”催收状态”、”发票状态”、”客户反馈”这几个维度里。这个要是让我自己写规则,我估计写到明天早上都搞不定。我直接把所有备注文本倒进Claude的context里,让它帮我做分类。最开始我用了zero-shot classification,效果一般,后来换了个思路:先让它从所有文本里归纳出一些常见模式,然后根据这些模式生成分类规则,再执行分类。这样准确率从70%左右提到了90%以上。剩下的那些模糊的、模棱两可的文本,我直接标记成”需要人工复核”,也没有强求AI百分之百准确。

整个过程从下午两点干到五点半,三个半小时。中间还遇到了一个坑:Claude的API有速率限制,我一次性丢太多数据过去,返回了一个429 Too Many Requests。后来改成每批处理50条,加了个time.sleep(1),就好了。还有就是内存问题,我那个破笔记本只有16G内存,处理300多个Excel文件的时候,pandas直接OOM了。后来改成逐文件读取逐文件写入,不把全部数据加载到内存里,才跑通。这种低端问题真的要命,但AI没法帮你解决你电脑配置烂的问题。

最终结果呢?原来要一周的活儿,今天下午搞定了。生成了统一的Markdown文件,每个文件都按规范命了名,字段也整齐划一。我还让AI帮我写了个脚本,自动对比源数据和目标数据的数据量,确保没有遗漏。跑完之后发现有一个文件夹里的文件数量对不上,排查了一下,原来是那个文件夹下面有一个隐藏的.DS_Store文件被当成了Excel文件处理,导致计数不对。这种错误又蠢又真实,改了个过滤条件就解决了。

说真的,干完那一刻我靠在椅子上发了五分钟呆。不是因为累,是因为我在想:以前那些靠手动操作加班到凌晨的日子,到底有多少是真正必要的?我不是说AI能替代所有工作,它今天也犯了不少低级错误,比如把”王小明”识别成了”王小明先生”,把”壹佰元整”识别成”100元整”但小数点位置搞错了。这些我都得手动校对一遍。但问题在于,它帮我省掉了那些最枯燥、最重复、最让人想死的那部分——数据搬运、格式转换、字段对齐。我只需要做决策和检查就够了。

明天我打算继续优化一下这个流程,把那个错误率降到更低。不过说实话,就算保持现在这个水平,我也已经很满意了。毕竟以前那种”复制粘贴一整天,下班回家眼冒金星”的日子,我是真的不想再过第二次了。

好了,该去吃晚饭了。今天心情不错,奖励自己一份红烧肉。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注