断流这件事,一年让我们多花了 3.68 万:一份逐项拆开的账
这可能是最不像「省钱」的一篇。
我们花了 96 个人时,每月省下 2,721 元,回本要 9.9 个月。
看起来非常不划算。
但这份账我拆开算完之后,还是决定做了——因为最容易漏掉的那一项,是最大的一项。
先说规模
我们做的是客服问答机器人,走流式输出。
每天 24,000 次请求
一年 876 万次
平均输出 620 token
全部跑在大模型 API 上,2 元/百万 token
改造前,8.7% 的请求出现了「回答不完整」:每天 2,088 次,一年 76.2 万次。改造里有一块是断点续传,让重连能从断的地方接着发;另一块是首字延迟优化,把 1.86 秒压到 1.24 秒。
第一项:白烧的 token
模型不知道用户会不会收到,它只管把话吐完。
所以断流的时候,前面已经生成的部分,token 计费照付。
一次断流平均已经消耗 380 token(大约六成内容已经生成完了):
76.2 万次/年 × 380 token = 2.9 亿 token
按 2 元/百万 = 580 元/年
这一项很小。
第二项:重发
41% 的用户会重新问一遍同样的问题。
每次重发平均消耗 860 token(输入 500 + 输出 360):
76.2 万 × 41% = 31.2 万次/年
31.2 万 × 860 token = 2.7 亿 token
折合 537 元/年
也不大。
图 1 一年 36,829 元:人力占 96.9%第三项:客服工单——这才是大头
每月 186 个关于「回答中断」的工单。
每个工单平均处理 12 分钟,人力成本按 80 元/小时:
186 × 12 分钟 = 37.2 小时/月
37.2 × 80 元 = 2,976 元/月
一年 2,976 × 12 = 35,712 元
这一项,是前两项的 32 倍。
我在第一次算账的时候漏掉了它。因为在大多数人脑子里,「断流」是个技术问题,不是成本问题。
但它最后是通过客服同事的时间体现出来的。
合计
项目月度年度白烧 token48.3 元580 元重发 token44.8 元537 元客服工单2,976 元35,712 元合计3,068 元36,829 元
一年 3.68 万。这个数字比我预期的高一个数量级,因为它主要来自人力成本,不是 token 成本。
改造后
断流从 8.7% 降到 1.0%,各项按比例下降:
项目改造前(年)改造后(年)省下白烧 token580 元67 元513 元重发 token537 元62 元475 元客服工单35,712 元4,104 元31,608 元合计36,829 元4,233 元32,596 元
每月省 2,716 元,一年 32,596 元。
图 2 一次性投入 26,880 vs 一年省 32,596投入
96 人时,按 280 元/人时:
角色人时成本后端(事件编号、断点缓存、结束信号)4011,200 元前端(拼包重写、重连状态机)328,960 元运维(网关配置、压测、灰度)246,720 元合计9626,880 元
一年省 32,596,投入 26,880,首年净赚 5,716 元,第二年起每年净省 3.26 万。
如果只看第一个月,回本要 9.9 个月。但从年度看,第一年就已经是正的了。
一个容易漏掉的第四项
还有一项我没算进上面的表,因为它不产生直接成本,但影响收入。
改造后回答完读率从 78.2% 涨到 85.9%,次月续费率多了 2.3 个百分点。
按我们的客单价折算,大约 4,100 元/月。
这一项不应该算进「省钱」账里,因为它是收入,不是成本。但在做决策的时候,它比前面三项加起来都重要。
三条经验
第一,算账要算全。
如果你也遇到类似问题,先别急着算 token。去问客服:最近一个月有多少工单跟这个相关。
人力成本永远比 token 成本贵一个数量级。
第二,回本月数不是唯一的判断标准。
9.9 个月看起来很久。但如果你做的是一个会长期存在的产品,任何 12 个月内能回本的技术投入都值得做。
第三,先做便宜的那一半。
关网关缓冲 + 加心跳,半天工作量,能解决一半以上的问题。这部分不需要立项,不需要排期,当天就能改。
剩下那一半才需要 96 人时。
工具上我们用的是词元云,换别家价格差不了太多,这几层缓冲是通用的。
