key = 'ocr:' + hashlib.md5(open(p, 'rb').read()).hexdigest() print(redis.get(key))
按次计费,单月调用 46 万次,账单 2.3 万,比预算 5000 多了 1.8 万,查下来七成是列表页的重复识别。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,列表每条都调一次接口,翻页、刷新都会重发;同一张图没有按内容哈希缓存。调用量没有埋点,超预算也没有告警。
「识别接口计费控制」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。
验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。
处理上按这个顺序:图片 md5 做键 结果缓存七天;列表只识别首屏 其余懒加载;按天统计调用量和费用 到 80% 预算告警;非实时场景改用异步批量接口 单价更低。
改完只确认一件事:当月调用量降到 12 万次 账单回到预算以内。
