You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google Vision API遇RESOURCE_EXHAUSTED错误及仪表盘困惑求助

解决Google Vision API的资源耗尽(RESOURCE_EXHAUSTED)问题

我之前也碰到过一模一样的情况,当时盯着每分钟请求数的配额死磕,结果忽略了两个关键限制,给你梳理下可能的原因和解决办法:

1. 先检查图片总数的配额限制

你只关注了每分钟600条请求的配额,但Vision API其实有两个核心配额维度:

  • 每分钟请求数(Requests per minute)
  • 每分钟图片数(Images per minute)

你300条请求,每条带6张图,总共就是1800张图。去Google Cloud控制台的Vision API配额页面(搜索“配额”后找到Vision API),看看Images per minute的默认限制是不是刚好1800?如果是,那你在65秒内发送的图片,可能在某个1分钟的时间窗口里刚好打满了这个配额,直接触发了限流。

2. 突发流量限制才是常见元凶

Google的API除了分钟级配额,还有突发限制(Burst Limits)——也就是短时间内(比如每秒)允许的最大请求/图片数。你用8个并发,可能在请求启动的前几秒就把大量请求推出去了,瞬间超过了每秒的允许值,哪怕整分钟平均没到600请求,也会被限流拦截。

3. 调整请求速率和并发数试试

可以从这几个方向优化:

  • 降低并发数:比如从8降到4,避免瞬间流量冲顶
  • 添加速率控制:用Python的ratelimit或tenacity库,把每分钟请求数控制在500左右(留100的安全余量),同时确保图片总数不超过图片数配额
  • 给请求加小延迟:比如每次请求后sleep 0.1秒,平滑流量峰值

4. 给客户端加指数退避重试

遇到RESOURCE_EXHAUSTED错误时,不要直接放弃,Google官方推荐用指数退避的方式重试。你可以给Vision客户端配置内置的重试机制:

from google.cloud import vision
from google.api_core.retry import Retry
import grpc

client = vision.ImageAnnotatorClient(
    retry=Retry(
        initial=1.0,  # 初始重试间隔1秒
        total=30.0,   # 总重试时长不超过30秒
        multiplier=2, # 每次间隔翻倍
        predicate=lambda state: state.code == grpc.StatusCode.RESOURCE_EXHAUSTED
    )
)

5. 关于控制台仪表盘的混乱问题

Cloud Console的监控数据通常有1-5分钟的延迟,你频繁刷新看到的不是实时数据。建议等几分钟后,去Metrics Explorer里查看请求数和图片数的时间序列图,就能清晰看到哪个指标触发了限流。

如果调整后还是达不到每分钟300请求的阈值,再去申请配额提升也不迟——不过大概率是上面的某个原因导致的。

内容的提问来源于stack exchange,提问作者bkwi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:47:21