问题出现得很突然,日志倒是留得挺全。gemini-1.5-flash 免费层批量翻译,跑十几分钟后开始 429,原文 RESOURCE_EXHAUSTED,details 里有一串 quotaId 和 quotaValue,控制台只显示每分钟请求数,看不出到底撞的是哪条线。
刚开始盯着「同一项目下多个 key 共享项目级配额」,折腾了半个多小时,排掉了。
真正麻烦的地方在于,几个原因的现象几乎一样。免费层按每分钟请求数和每天请求数两条线限。也可能是quotaId 里带 per minute per project 的才是生效那条。
另外,重试请求把每分钟额度提前打满。
第一件事是把 429 的 details 完整打印出来
python -c "import json;d=json.load(open('err.json'));print(json.dumps(d,ensure_ascii=False)[:800])"
随后按 quotaId 的窗口统计实际速率
python rate.py --log app.log --window 60
接着把并发压到额度以下并加排队
python queue.py --rpm 12 --workers 2
末了确需更高额度时给项目开通结算
python -c "print('enable billing for the project')"
改完先别撤,确认这几项。每分钟请求数稳定在额度内,429 归零,details 里不再出现 RESOURCE_EXHAUSTED。
免费层的两条配额线叠加生效,quotaId 会指出是哪一条,别只盯控制台那个总数。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。
