既然手工录入太慢,我就写了个“Agent 自动审计系统”

既然手工录入太慢,我就写了个“Agent 自动审计系统”。这念头冒出来的时候,我正对着屏幕上一份PDF审计报告,手动往Excel里敲第87行数据。颈椎那块肌肉又开始一跳一跳地疼,像有个小锤子在里头敲。一年前,这个书房还是个能让人静下心画原型图的地方,现在?现在它像个被信息炸弹犁过一遍的废墟。桌面上堆的不是Axure的线框图,是打印出来的论文,《Attention Is All You Need》边上摞着《Chain-of-Thought Prompting》,再边上还有OpenAI刚更新的API文档,页边角全是我用红笔画的问号和“FUCK”字样的暴躁涂鸦。

补课补得我快神经衰弱了。真的。ChatGPT-3.5出来那阵子我还觉得就是个高级点的聊天玩具,等GPT-4的API文档甩我脸上,我才明白什么叫降维打击。我以前那套东西,爬虫、自动化脚本、甚至引以为傲的产品逻辑拆解,在这东西面前脆得跟张纸一样。恐慌是实打实的,不是焦虑,是恐慌。晚上躺床上,脑子里不是DOM树怎么解析了,是“思维链”、“函数调用”、“嵌入向量”这些词在打转,闭眼就是token在眼前飘,像中了邪。必须得做点什么把脑子里的高速齿轮强行刹住,不然真得崩。所以现在每天下午四点雷打不动,换上跑鞋去健身房,跑步机上坡度调到最高,速度提到10,往死里跑二十分钟,直到肺像烧起来,汗把眼睛糊住,脑子里那些嗡嗡响的杂音才会暂时消失。身体是最后的堡垒,这话我现在信了。

说回这个审计系统。痛点太具体了:客户的财务数据散在几百个PDF里,格式还不统一,有表格有段落。人工处理,一个项目两个人对三天,还容易出错。以前我的思路肯定是写个Python脚本,用pdfplumber或者camelot把表格抽出来,再写一堆正则表达式去清洗数据。但这次我想试试用大模型当这个“解析引擎”。思路很简单,但实现起来全是坑。我先用LangChain搭了个架子,把PDF切块,喂给GPT-3.5-turbo,让它按我指定的JSON格式提取关键字段:公司名、审计期间、收入、净利润、关键审计事项。第一个坑马上就来了:上下文长度。一份报告几十页,远超4096个token的限制。得用Map-Reduce,先分块总结,再汇总。但这又引出第二个坑:成本。每份报告来回调用几十次API,测试阶段账单看着就肉疼。得加缓存,得设计更精细的提示词,减少不必要的调用。

最头疼的是稳定性。API有频率限制,偶尔还会返回些乱七八糟的结构化数据。我不得不在外层裹一个重试机制,加上延迟,模拟人类“阅读-思考”的间隔,避免被风控。这系统本质上是个脆弱的管道,一头是混乱的非结构化文档,另一头要求是干净的结构化数据,中间全靠大模型这个“黑箱”来连接和理解。调试提示词成了主要工作,不再是写代码逻辑。你得用自然语言去“编程”,去约束它的输出,比如明确告诉它“如果找不到‘审计意见’段落,则在该字段输出‘未明确披露’”,还得防止它胡编乱造。我管这套东西叫“Agent”,因为它确实在替代一部分初级审计员的判断劳动,虽然它时不时会犯一些人类觉得可笑的错误,比如把页码数字当成金额。

搞到凌晨两点,终于跑通了第一份完整报告。看着数据自动流入Airtable,生成可视化的图表,那一刻没有兴奋,只有一种深深的疲惫和更深的危机感。我刚刚用几周时间,模仿了一个需要多年专业训练才能上岗的岗位的部分工作流。而我用来实现它的工具,半年前我甚至没听说过。这种学习速度的压迫感,比任何KPI都吓人。关掉电脑,书房里只剩下屏幕电源指示灯那点微弱的红光。我知道明天醒来,又会有新的论文,新的框架,新的“最佳实践”需要我去啃。但至少今晚,这个小小的“Agent”替我干掉了87行之后可能无穷无尽的手工录入。这就够了。先睡,明天还得继续跟这个时代赛跑。

© 版权声明
THE END
喜欢就支持一下吧
点赞46 分享