产品说"用户上传截图自动填工单" 三月中旬产品提了个需求:用户报障时经常甩一张截图过来,客服要手工把里面的订单号、错误码、时间点一个个敲进工单系统,平均 90 秒一条,希望系统能自动识别和填充。听起来简单,做下来发现"看懂一张图"这件事在工程上的复杂度远超我的预期。 这篇记录我们在 Java 应用里
5 万条评测数据,从 80 分钟压到 9 分钟 今年 1 月要做一次大模型效果评测:5 万条标注问题,分别跑三个候选模型,记录每条的输出、耗时和 token 数。总共 15 万次调用。 第一版脚本用 200 线程的固定线程池,跑了 82 分钟还没跑完(因为触发限流重跑了一批)。我花了一天改成虚拟线程
10 月账单 11.7 万,调用量才涨了 40% 11 月 1 号早上收到云厂商账单:10 月大模型调用费用 11.73 万元。9 月是 4.31 万,涨了 172%。但同期我们的业务量只涨了 40%,这中间肯定有浪费。 我花了两天做了一次完整的用量审计,最后把 11 月的账单压到了 5.1 万。过
文档下线三天了,客服机器人还在引用它 9 月中旬出了个不大不小的故障。运营下架了一份过期的《海外退换货政策 V1》,三天后还有用户在客服机器人里问到"海外订单 30 天可退",而新政策是 15 天。用户截图投诉到了客服主管那里。 我查了一圈,问题出在存储架构上。我们当时的 RAG 是这样的: MyS
同事甩给我一个跑了 25 分钟的同步接口 上周三下午,做商品中心的小赵在工位上喊我:"哥,我这个批量生成接口本地跑得好好的,一上预发就 504,你帮我看看。" 需求不复杂:运营上传一个 5000 行的商品 Excel,每行调一次大模型生成营销文案,全跑完导出结果文件。他写的是同步接口,一个 for
团队想给客服系统加 AI 能力,产品经理一句"接个大模型"听起来轻巧。真要做时,我发现最大的问题不是模型效果,而是:AI 该放在系统哪一层?和现有业务怎么融?出错了怎么办?这层边界不清,迟早把核心交易拖下水。 边界划分:AI 是增强,不是核心 我的第一原则是:AI 能力必须处在非关键路径。下单、扣款
大模型再能聊,它本身算不了实时库存、查不了数据库。要让它"动手",得靠 Function Calling:模型决定调哪个函数、填什么参数,Java 侧真实执行,再把结果喂回去。这趟趟过的坑,比想象中深。 工具注册:把 Java 方法暴露给模型 用 Spring AI(1.0 GA 稳定版)注册一个工
接了大模型问答的活儿,第一版我们用普通 HTTP 请求,前端点完"发送"就开始转圈,最长 18 秒才一次性吐出整段答案。产品同学盯着转圈圈说了一句话:"能不能像 ChatGPT 那样一个字一个字蹦?"于是有了这次 SSE 改造。 SSE 是什么,为什么不用 WebSocket 大模型生成是单向的:服
LLM 进了核心链路,黑盒就太危险 工单助手上线后,运营反馈"有时候答非所问"。但 LLM 调用对我们来说是个黑盒:不知道每次花了多少 token、耗时多少、模型返回了啥。更糟的是出了错没法归因。我参照传统可观测性,给 LLM 调用也接上了 Trace、Token 统计和效果评估三件套,才算把这层黑
LLM 调用账单太吓人 工单助手每天上万次调用 GPT,账单一个月涨到三千刀。财务找过来时我才认真看数据:大量 query 语义相近("怎么退货""退货流程""我要退钱"),答案其实一致,却每次都花 token 去问模型。用 Redis Stack 的向量检索做"语义缓存",把相似问题直接命中缓存,