乐于分享
好东西不私藏

我很缺钱,于是给老婆做了一个 AI 开票助手

我很缺钱,于是给老婆做了一个 AI 开票助手
我最近挺迷茫的。
感觉生活很糟糕,不知道自己该做什么。
而且,很缺钱。
那种感觉怎么说呢,就是你明明很想改变现在的生活,却连第一步该往哪里走都不知道。
想赚钱。
但不知道靠什么赚钱。
想做点事情。
但脑子里一片空白。
我原来是一个前端程序员。
写页面、调接口、改样式、修 Bug,这些事情我都很熟悉。
别人把需求给我,我想办法把它做出来。
但做了几年以后,我越来越觉得,我不想永远只做那个接需求的人。
我想转产品。
我想知道一个需求是怎么出现的,为什么要做,解决了谁的问题,最后又能不能变成一门真正的生意。
想得挺好。
但问题也很现实。
怎么转?
没人告诉我。
我也不知道一个产品到底该从哪里开始。
是先学画原型,还是先看产品经理课程?
是写需求文档,还是研究商业模式?
我越想越多,越想越乱。
最后又回到了原来的问题。
我到底该做什么?
我就去问 AI。
它给我的答案是,去读书。
我当时看到这个回答,多少有点无语。。。
不是哥们,我都快急死了,你让我去读书???
但我也确实没有更好的办法。
于是,我去读了它推荐的《纳瓦尔宝典》。
这本书里有一个概念,让我愣了很久。
利他,其实也是利己。
一个人的价值,体现在他是否被别人需要。
我不知道自己理解得准不准确。
但那一刻,这句话确实给了我一点新的思路。
我以前一直盯着自己。
我会什么?
我能做什么?
什么行业赚钱?
什么产品有前景?
有没有一条别人已经验证过的路,能让我赶紧走上去?
可这些问题想来想去,答案还是没有。
我就开始顺着书里的那个概念往下想。
如果我不知道自己该做什么,那我能不能先别盯着自己?
先去看看别人。
看看他们每天在为什么事情烦恼。
看看有没有什么事情,对他们来说很痛苦,但对我来说,刚好可以解决。
我开始观察身边的人。
然后我很快发现,根本不用看多远。
离我最近的那个人,就已经很需要帮助了。
我老婆。
她不仅要带娃,还要工作。
本来每天的事情就已经很多了,但为了多赚一点钱,她还是接了一份外快。
她有一个朋友,开了一家小代账公司。
这家公司要服务大概 50 个企业和个体户,每天都有各种零零散散的开票需求。
每个企业都有一个单独的群聊。
需要开票的时候,客户就往群里发资料。
有时候是一段文字。
有时候是一张截图。
有时候是手写的票单。
有时候是一份 Excel。
格式不一样,写法不一样,信息完整程度也不一样。
我老婆要做的,就是从这些消息里把真正有用的信息找出来,再一点点整理好,最后去开票。
一张票看起来没多少东西。
公司名称、税号、商品、数量、金额、税率。
复制一下,核对一下,好像几分钟就结束了。
可问题是,它不是一张。
是几十个群。
几十家企业。
一会儿来一张截图,一会儿来一句补充,一会儿客户又说前面的金额写错了,让她按新的开。
所有事情都是碎的。
一张不难。
难的是一天有几十张,而且每一张都不能错。
她经常一忙就是一整天。
别说休息了,有时候连上厕所、喝口水的时间都没有。
我看着她不停地切换群聊、下载文件、复制信息、核对内容,脑子里突然冒出来一个念头。
等一下。
收集信息。
识别图片。
解析 Excel。
判断里面有没有开票需求。
把零散内容整理成结构化数据。
再导出成统一的表格。
这尼玛。。。
不就是我的强项吗?
我是个前端程序员。
现在我手上又有 Codex。
这些重复、琐碎、规则明确,却特别消耗人注意力的工作,不就是这个时代最适合交给程序和 Codex 的东西吗?
那一刻,我脑子里的东西一下子全连上了。
我需要做一个网页。
接入企业微信,读取群里的开票资料。
系统自动判断这是不是一条开票需求。
如果是,就从文字、截图、手写单据或者 Excel 里提取信息。
缺什么,标出来。
不确定什么,交给人确认。
确认完成以后,自动整理成税局需要的表格,再去网页开票。
这不就结束了吗?
如果我老婆需要,开代账公司的朋友需要,那其他代账公司是不是也需要?
一家代账公司每天能省几个小时。
100 家呢?
1000 家呢?
我越想越兴奋。
甚至在那个瞬间,我觉得自己可能已经找到了那条能赚钱的路。
需求是真实的。
场景是真实的。
痛苦也是真实的。
更重要的是,我好像真的能做。
说干就干。
我马上把自己的想法和需求,全都告诉了 Codex。
天才萧炎。
启动。
Codex 很快就给了我一套看起来特别完整的方案。
企业微信接入、文件解析、OCR、字段识别、任务队列、人工审核、税局导出。。。
一大串模块铺在屏幕上。
我看着这些东西,脑子里已经开始自动播放成功学 BGM 了。
再过几天,我老婆不用加班了。
再过几周,她朋友公司的开票效率直接翻倍。
再过几个月,我把这套东西卖给全国的代账公司。
钱。
这不就来了吗?
然后我真的开始做。
做了没多久,我就发现,我对开票这件事的理解,大概相当于一个会用计算器的人,突然准备去造一家银行。
我原来以为,客户发来的资料,无非就是几种格式不同的数据。
真正拿到那些 Excel 以后,我才发现,每一个客户,都有自己独特的倔强。
有的人把商品名称写在第一列。
有的人前面空两行,再放一个大标题,再空一行,然后才开始写数据。
有的人把数量和单位放在一起。
有的人只有总金额,没有单价。
有的人税率写 13%,有的人写 0.13,还有的人干脆不写。
更要命的是,有些表格看起来特别正规,里面却缺少开票真正需要的信息。
你不能因为它长得像一份完整的表格,就假装它真的完整。
而开票又偏偏是一个不能瞎猜的事情。
一个商品名称猜错了,也许还能被人看出来。
税号、税率、金额、税收编码一旦错了,后面就不是改几个字那么简单了。
我一下子反应过来。
这里最危险的,不是 Codex 识别不出来。
而是它识别错了,还写得特别像真的。
这一下给我整清醒了。
我原来想做的是一个全自动开票系统。
但真正需要先解决的,其实是另一个更朴素的问题。
怎么把散落在各个文件里的信息,尽可能整理好。
怎么把不确定的地方,老老实实标出来。
怎么让审核的人一眼看见原始资料和整理结果,而不是重新翻一遍群聊,再重新核对一遍 Excel。
也就是从这个时候开始,我才慢慢感觉到,自己不是在单纯地写一个网页。
我是在做产品。
以前做前端的时候,别人会告诉我这里需要一个按钮,那里需要一个弹窗,点完以后调用哪个接口。
我的任务是想办法把它实现。
但这一次,没有人给我需求文档。
没有人告诉我哪个功能最重要。
也没有人告诉我,什么应该做,什么暂时不能做。
我必须自己去理解整个工作流程。
为什么她会这么忙?
时间到底消耗在哪里?
她真正害怕的是什么?
是录入速度慢,还是资料容易遗漏?
是不会开票,还是几十个群里的信息太碎?
如果系统识别错了,后果是什么?
哪些步骤可以自动完成,哪些步骤必须留给人?
这些问题,已经不是前端代码能直接回答的了。
我以前以为,从前端转产品,可能是从写代码变成画原型、写文档、开需求会。
做到这里我才发现,都不是。
真正的变化,是你不能再等别人告诉你要做什么。
你得自己走到那个正在受苦的人旁边,看看问题究竟发生在哪里。
然后做选择。
先解决哪个问题。
暂时放弃哪个功能。
哪些地方可以追求效率。
哪些地方宁愿慢一点,也不能出错。
所以我把目标砍了。
暂时不接企业微信。
不自动登录电子税务局。
也不替人做最后决定。
先做一个资料整理和人工审核工具。
客户把 Excel、图片或者 PDF 放进去,系统负责解析。
能确认的就整理出来。
不能确认的就标成待确认。
左边放原始依据,右边放结构化结果。
购买方是谁,商品是什么,规格是什么,金额是多少,税率是多少,19 位税收编码有没有缺失。
哪里有问题,哪里亮黄色。
哪里被人工改过,哪里留下记录。
陌生文件识别不了,就明确告诉人识别不了。
不猜。
这个原则后来几乎变成了整个项目最重要的一条规则。
因为我慢慢意识到,真正能进入工作场景的 Codex,不应该像一个特别自信的实习生。
它更应该像一个知道自己什么时候不确定的同事。
会做的事情认真做。
不会的地方举手。
我开始拿真实资料去验证。
本机资料目录里,一共有 50 份 Excel。
其中 48 份能够通过内容指纹识别。
这里还有个很现实的问题,文件名根本不可靠。
客户可能改名,可能转发,可能在后面加一个最新版,也可能再加一个真的最新版。
所以我没有拿文件名判断它是谁,而是给文件内容做指纹。
名字改了,内容没改,照样能认出来。
内容变了,就重新判断。
陌生文件,也不会硬往已知模板上套。
慢慢地,页面里出现了 87 个任务,603 条商品明细。
这些数字看起来没有多惊人。
但你想想看,603 条商品明细,如果全部让人从几十份文件里一条条找、一条条复制、一条条检查,那些时间最后会落到谁身上?
就落到我老婆身上。
落到她朋友身上。
落到一个白天要回复客户消息,晚上还要继续整理票据的人身上。
她们不会把这件事称为数字化转型。
她们只会觉得,今天怎么又有这么多票。
又不能不做。
这才是我真正想解决的问题。
后来,我又给它加上了图片和 PDF 的本机识别。
之所以强调本机,是因为这些资料里有企业名称、税号、银行账号,还有很多不能随便往外传的信息。
最省事的方案,当然是把文件直接交给外部服务处理。
但省下来的开发时间,不能拿客户数据去换。
所以图片和 PDF 都留在本机解析。
能识别多少就识别多少。
识别不准的,继续交给人确认。
而且说实话,我们现在的真实资料里,50 份全是 Excel,一份真实的图片和 PDF 都没有。
所以我也不能拿几个自己合成的测试文件,就拍着胸口说手写票据识别已经成熟了。
没有样本,就是没有结论。
这话可能不性感,但这是事实。
顺着这个方向,我又做了人工修改记录。
如果某个客户经常把商品叫成一个简称,人工改过以后,系统可以生成一条待审批的商品映射。
批准了,下次再遇到同样的叫法,就给出推荐。
注意,是推荐。
不是偷偷覆盖。
客户原资料里明确写了什么,永远以原资料为准。
只有原资料缺失的时候,客户规则才能出来帮忙。
用了推荐以后,人还是要确认。
我越来越觉得,真正有用的自动化,很多时候不是把人彻底拿掉。
而是把人的注意力,从大量重复劳动里解放出来,只留在那些真的需要判断的地方。
这个差别挺大的。
前者是在演示视频里消灭人。
后者是在现实工作里保护人。
后面,我又把税局的 V260401 批量模板接了进来。
审核完成的任务,可以导出成官方模板。
发票类型、含税标志、购买方、税收编码、金额、税率,只要有一项不合格,就不让导出。
导出以后,服务端不保存税局文件,只记录时间、任务关系和文件哈希。
同一个任务重复导出,也会先提醒。
这些东西写出来没什么爽感。
没有聊天机器人,没有赛博大屏,也没有一个巨大的发光球体在屏幕中央转来转去。
但它们很重要。
因为工作软件不是拿来演示的。
它是要在一个人已经忙到顾不上喝水的时候,依然不添乱。
到现在,这个项目已经有 14 组自动验证。
Excel 导入、任务保存、人工反馈、商品映射、单个导出、批量导出、重复提醒、图片和 PDF 解析、客户规则、审核耗时、准确率报告。。。
这些流程已经能够在本机跑起来。
但我还是不敢说,这个项目做完了。
企业微信还没有真正接进来。
电子税务局也没有自动提交。
复杂 Excel 依然可能翻车。
手写单据到底能识别到什么程度,还需要真实样本验证。
登录、权限、生产部署,也都没做。
距离一个真正能卖钱的产品,说实话我们还差得远。
它现在只是一个真实样本验证版。
验证的也不是 Codex 能不能取代人。
而是资料导入、结构化整理、人工审核这条链路,能不能真正帮人省下时间。
我觉得,这也是我从前端转产品以后,必须学会的一件事。
不要因为一个功能能做,就立刻去做。
也不要因为一个故事听起来很大,就默认用户愿意买单。
先把最小的闭环跑通。
先证明一个真实的人愿意用。
先确认它确实解决了问题。
以前的我更关心,这个页面能不能做出来。
现在我开始关心,这个页面应不应该做。
以前看到需求,我想的是怎么实现。
现在看到需求,我会先问,这是谁的需求,他现在是怎么解决的,他到底愿意为什么付钱。
这种变化没有让我立刻成为产品经理。
说实话,我自己也还在摸索。
但这个项目给我的感觉,比看多少节产品课程都真实。
因为我每天面对的,不是课件里的用户画像。
是我老婆。
她不是一张写着年龄、职业、收入的表格。
她是一个真的要带娃、真的要工作、真的会因为几十条开票信息忙得顾不上喝水的人。
她也成了我眼前第一个具体的用户。
如果我做出来的东西不能帮到她,商业模式写得再漂亮也没有用。
如果她用了以后,依然要把所有资料重新检查一遍,那这个产品就没有真正节省时间。
如果系统为了显得聪明,偷偷猜了一个错误税率,那它甚至还不如没有。
这些判断,代码不会替我做。
Codex 也不会替我做。
它可以帮我写页面、改接口、补测试、分析文件。
但该解决什么问题,哪些风险不能接受,应该先服务谁,这些事情还是要由我决定。
可能这就是产品工作最难的地方。
也是我现在最想学会的东西。
很奇怪。
做到这里以后,我反而没有刚开始那么着急了。
刚开始的时候,我满脑子想的都是,这东西能不能赚钱,能卖给多少家代账公司,能不能让我赶紧摆脱现在这种缺钱的状态。
做着做着,我开始意识到,我可能把顺序搞反了。
不是先找到一个很大的市场,然后逼自己给它制造价值。
而是先看见一个具体的人。
看见她正在为什么事情疲惫。
然后用自己会的东西,帮她把一点点重量拿走。
如果这件事真的帮到了一个人,那么很可能,另一个和她处境相似的人也需要。
再然后,才可能是一家公司,一个行业,一门生意。
纳瓦尔说,社会会通过财富来回报那些提供了它想要、却不知道如何获得的东西的人。
以前我读到这种话,注意力全在财富两个字上。
现在我再回头看,觉得真正应该先看见的,是前半句。
提供别人需要的东西。
利他等于利己,听起来像一句很大的话。
但落到生活里,可能就是你终于认真看了一眼身边那个忙得连水都顾不上喝的人。
然后问她。
有没有什么事情,我可以帮你少做一点?
至少到现在,我还没有因为这个项目赚到钱。
甚至为了它花掉了很多时间。
我也还没有顺利完成所谓的产品转型。
但它给了我一个特别久违的东西。
方向。
人在迷茫的时候,总想找到一条已经被证明能赚钱的路。
最好有人告诉你,照着走,三个月见效,半年翻身。
可现实里可能根本没有这样的路。
有的只是一个很小的需求。
一个正在受苦的人。
和你手上刚好会的一点东西。
你先走过去。
先帮一次。
再帮一次。
然后看看这条路,会通向哪里。
我不知道这个 AI 开票助手最后会变成什么。
也许它真的会成为一个产品。
也许它最后只能帮到我老婆和她的朋友。
也许我还会踩很多坑,最后发现自己最开始的想法幼稚得离谱。
都没关系。
至少这一次,我没有继续坐在那里问,自己应该做什么。
我开始做了。
一个原来只等着接需求的前端程序员,也开始学着走到需求发生的地方。
去观察。
去追问。
去判断。
去取舍。
然后,为一个真实的人,做一个她真正需要的东西。
天才萧炎也没有一上来就炼出帝品丹药。
他先把一张 Excel,搬进了网页里。
然后是下一张。
再下一张。
生活可能依然很糟糕。
钱也依然很缺。
但当一个人开始被别人需要的时候,他好像就不再只是一个被生活推着走的人了。
他重新拥有了一点力量。
很小。
但是真的。