#你工作中常用AI系统吗#

全程我只负责「说需求」和「说不行」,一行代码没写过


一、需求背景:每周一的 40 分钟

每周一早上,我都要面对同一件事:处理报销。

打开 QQ 邮箱,收件箱里躺着十来封发票邮件——12306 的电子客票、滴滴的行程单和发票、华住酒店的开票通知。我需要一封封下载附件,然后在 Excel 里逐行填:日期、出发地、到达地、车次、座位等级、金额……每个字段一列,每条行程一行。

填完 Excel 还不算完。所有 PDF 要合并成一个文件,调整好排版才能打印。最后还要去 Obsidian 里更新出差行程记录。

这一套下来,40 分钟起步。

作为非技术人员,我知道这事应该能自动化——隔壁工位的程序员同事总说「能用脚本解决的别用手点」。但我不会写代码。

不过我会用 AI。

于是我打开 Hermes(我的 AI 助手),把需求说了出去。

二、需求拓展:说出来的软件

我跟 AI 的第一句话很简单:「帮我从 QQ 邮箱下载发票。」

AI 很快写了个脚本跑起来,确实能下载了。但用了一周,我发现光下载不够。

发票不是下载下来就完事的。

铁路的 PDF 是一堆「电子客票」,要从中提取哪天、哪趟车、多少钱。滴滴的发票跟地铁票长得一模一样(都写着「旅客运输服务」),但金额差很远。住宿的更复杂,除了发票还有结账单,上面有入住和离店日期。

我跟 AI 说:「帮我把发票内容也读出来,按行程归类。」

AI 加了 PDF 解析。我又说:「填到 Excel 模板里。」AI 加了 Excel 填单。我又说:「PDF 合并一下方便打印。」AI 加了合并。

需求像滚雪球一样,每次我提一个,AI 就加一个功能:

  • 发票要按行程分组 → 加
  • 不同发票排版不同——火车票一页两张、行程单一页一张 → 加
  • 可抵扣的发票要多打印一份报税用 → 加
  • 要能区分哪些发票下载过,别下重了 → 加
  • 每周自动跑,别让我手动点 → 加

就这样,从最初的一个小脚本,慢慢长成了一个完整的报销工具。

三、代码重构:当代码需要「装修」的时候

功能加多了,AI 写的代码也越来越长,据说变成了 800 行的单个文件。

虽然我不懂代码,但我能感觉到:加一个新功能越来越慢了。以前说句话,AI 几分钟就改好。后来经常要等很久,而且改了这个坏了那个——比如修好了发票合并,结果行程单的日期格式又乱了。

我跟 AI 说:「这代码是不是该重新整整?我想要一个规范的版本,以后同事用只需要改配置文件,不用动代码。」

AI 给了一个重构方案:把整个工具重组成一个 Python 包,每个功能独立一个文件,配置全部抽到 YAML 里。

reimbursement/ ├── cli.py # 命令行入口 ├── config.py # YAML 配置加载 ├── batch.py # 批次管理 ├── mail.py # QQ 邮箱下载 ├── workflow.py # 工作流编排 ├── report.py # Excel 生成 ├── pdf_merge.py # PDF 合并 └── parsers/ ├── railway.py # 铁路客票解析 ├── didi.py # 滴滴发票解析 ├── hotel.py # 住宿发票解析 └── common.py # 地铁/通行费 

重构完我一看,果然不一样了。以前加功能要改一个巨大的文件,现在只用告诉 AI「改 parsers/did.py 那一段」就行。而且配置全在一个 YAML 文件里,新人换 Excel 模板只需要改列名映射,不需要碰代码。

不过重构也不是一帆风顺的。AI 把代码搬到新结构时,有 5 处细节跟原来的逻辑不一样——比如滴滴发票的判定条件变宽了,有些不该抓的文档也被解析了。我给 AI 指出来,它逐项对比了新旧代码,全部修复。

这个过程我称之为:我说需求 → AI 写代码 → 我测试 → 我说不行 → AI 改。循环几次,东西就稳了。

四、稳定运行:改了三轮才消停

代码写出来是一回事,让它每周自己乖乖跑是另一回事。

第一坑:发票去重

AI 最初用文件名判断发票是否下载过。但滴滴发票永远叫「滴滴电子发票.pdf」,这周下了下周又来,同名文件就被跳过了——后面的发票白白丢了。

我跟 AI 说:「不能按文件名跳,得按邮件本身判断。」

AI 改成用邮件 UID 去重:一封邮件只处理一次。文件名只做同目录下的自动重命名,跨批次不再跳过。问题解决。

第二坑:PDF 合并排版

第一次拿到合并好的 PDF 时,我看着不对劲——发票怎么打了两遍?仔细一看,原来 AI 把可抵扣发票在主段落里放了一份,末尾又附了一份。但我不确定这是不是 bug。

我问 AI 是怎么回事,它解释说:「增值税发票和铁路票可抵扣税款,末尾多打一份是为了报税时直接撕下来用。」

原来是特意设计的。但我又发现一个问题:通行费汇总单这种多行明细的单据,被缩印成半页,根本看不清楚。我让 AI 改成整页打印。

还有那些莫名其妙混进来的发票——后来发现是别人测试留下的 HTML 模板 PDF。AI 加了一道过滤,含有开发服务器路径的直接扔掉。

排班规则改了三轮才定下来:

第1段:所有发票(常规排版,通行费整页) 第2段:证明材料(一页一张) 第3段:可抵扣凭证再打一份(报税专用)

第三坑:自动 vs 手动的节奏

最初 AI 设计的是每周一自动跑全套流程——下载、填单、合并、标记已提交,一步到位。

但实际报销不是这样的。有时候我要攒两三周的发票才提交一次。如果每周自动标记「已提交」,后面的发票就没地方放了。

我跟 AI 说:「平时只下载,别做报表。我要提交的时候再手动跑。」

于是改成了现在的模式:每周一 cron 自动下载发票到当前批次。等我攒够了,跑一下 reimbursement report 生成报销单和合并 PDF。实际提交后,跑一下 reimbursement mark-submitted 标记状态。

小结:AI 负责写,我负责说「不行」

回头看整个过程,我没写过一行代码。我的工作只有三件事:

  1. 说需求 — 「帮我下载发票」「帮我填 Excel」
  2. 说不行 — 「排版不对」「去重有 bug」「别自动标记」
  3. 做决定 — 排版怎么排、流程怎么走、什么时候该重构

AI 负责把「说」变成「做」,我负责判断「做得对不对」。

对于非技术背景的人来说,以前这种需求只能等别人有空帮你写,或者自己花几个月学 Python。现在不一样了——你有想法,AI 能落地。你只需要告诉它你要什么,然后告诉它哪里不对。

最后贴一下现在的效果:

每周一 12:30 → 自动下载新发票到当期批次 准备报销时 → AI 生成报销单 + 合并 PDF 提交后 → AI 标记状态

从每周 40 分钟,到几乎零操作。中间改了多少轮我不记得了,但每一轮我都没写代码。

如果你也有重复性的办公流程,别忍着。找个 AI 助手,把你的需求说给它听。或者给我留言,大家一起聊聊。

本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。