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

使用Python调用OpenAI GPT时遭遇RateLimitError如何解决?

解决OpenAI API RateLimitError问题

先修正代码中的参数错误

你的代码存在两个拼写错误,可能间接影响请求处理,先修正:

import openai

key = '<SECRET-KEY>'
openai.api_key = key
model_engine = 'text-ada-001'
prompt = 'Hi, How are you today?'
# 修正:max_token → max_tokens,temprature → temperature
completion = openai.Completion.create(
    engine=model_engine,
    prompt=prompt,
    max_tokens=2048,
    n=1,
    stop=None,
    temperature=0.5
)
print(completion.choices)

针对RateLimitError的具体解决方法

  1. 核查账户配额与状态
    免费额度可能已耗尽,或账户设置了自定义限额。登录OpenAI后台查看Usage页面,确认剩余额度、请求数限制、token消耗限制等信息。

  2. 添加请求重试与速率控制
    开发阶段可通过重试机制应对临时限流,同时控制请求频率:

    • 使用重试库(如tenacity)针对RateLimitError自动重试,配合指数退避延迟。
    • 单次请求后添加固定延迟,避免短时间内集中发送请求。

    示例代码:

    import openai
    import time
    from tenacity import retry, stop_after_attempt, wait_exponential, retry_if_exception_type
    
    key = '<SECRET-KEY>'
    openai.api_key = key
    model_engine = 'text-ada-001'
    prompt = 'Hi, How are you today?'
    
    @retry(
        stop=stop_after_attempt(3),
        wait=wait_exponential(multiplier=1, min=2, max=10),
        retry=retry_if_exception_type(openai.error.RateLimitError)
    )
    def call_openai_api():
        return openai.Completion.create(
            engine=model_engine,
            prompt=prompt,
            max_tokens=50,  # 降低token上限,减少消耗
            n=1,
            stop=None,
            temperature=0.5
        ).choices
    
    try:
        print(call_openai_api())
    except openai.error.RateLimitError:
        print("重试后仍触发限流,请检查账户配额或进一步降低请求频率")
    
  3. 减少单次请求的token消耗

    • 你的max_tokens设为2048,对于简单问候请求完全冗余,可降低至50以内,减少token使用量。
    • 精简prompt内容,避免不必要的文本占用token额度。
  4. 验证API密钥有效性
    确认API密钥未过期、未被撤销,且关联账户处于正常状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:07:34