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

Vertex AI中Gemini-1.5-pro调用触发429配额耗尽,实际限额远低于文档标注的60RPM

Vertex AI中Gemini-1.5-pro调用触发429配额耗尽,实际限额远低于文档标注的60RPM

遇到这种明明文档标注配额是60RPM,但发5个请求就被限流的情况,确实挺闹心的,我帮你梳理几个大概率的原因和解决方向:

1. 混淆了「每分钟请求数」和「并发请求数」

文档里的60RPM是每分钟允许的总请求量,但Vertex AI的Gemini模型还有一个容易被忽略的并发请求上限——也就是同一时间能处理的请求数。新开通的付费账号(哪怕有剩余免费额度),初始并发配额通常很低,可能只有2-5个。你一次性异步发5个请求,刚好触碰到了并发的天花板,直接触发429,这和每分钟总配额没关系。

你可以去配额控制台里仔细找找,有没有类似「在线预测并发请求数」或者「Gemini模型并发请求限制」的配额项,别只盯着每分钟请求数看。

2. 确认配额的区域和模型匹配

你代码里用的是us-central1区域,要确保在控制台里查看的是同一个区域的配额。另外,Gemini-1.5-pro的配额可能单独分类,别不小心看了其他模型(比如Gemini-1.0)的配额数据。

3. 新账号的初始配额限制

即使是付费账号,Google为了防止滥用,对新开通的Vertex AI服务会设置初始低配额。这种情况下,你需要主动提交配额提升申请:在配额控制台找到对应的配额项,点击「编辑配额」,说明你的业务场景和需要的配额数值,一般1-3个工作日就能得到回复。

临时解决方案:给异步请求加限流

如果暂时等不及配额提升,可以先在代码里加个并发限制,避免一次性发太多请求。比如用asyncio.Semaphore来控制并发数:

import vertexai
from vertexai.preview.generative_models import GenerativeModel
import asyncio

PROJECT_ID = "MY_PROJECT"
vertexai.init(project=PROJECT_ID, location="us-central1")

async def _query_async(model: GenerativeModel, i: int) -> str:
    print(f"Sending request {i}")
    response = await model.generate_content_async("message")

    return response.text

async def run_pipeline_async() -> str:
    model = GenerativeModel("gemini-1.5-pro-002")
    # 限制同时最多2个请求在处理
    semaphore = asyncio.Semaphore(2)

    async def limited_query(i):
        async with semaphore:
            return await _query_async(model, i)

    query_jobs = asyncio.gather(*[limited_query(i) for i in range(5)])
    query_responses = await query_jobs

    return query_responses

result = asyncio.run(run_pipeline_async())
print(result)

这样把并发数降到2,应该就能避开429错误了,同时也能验证是不是并发配额的问题。

备注:内容来源于stack exchange,提问作者Harry Stuart

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 17:24:31