使用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的具体解决方法
核查账户配额与状态
免费额度可能已耗尽,或账户设置了自定义限额。登录OpenAI后台查看Usage页面,确认剩余额度、请求数限制、token消耗限制等信息。添加请求重试与速率控制
开发阶段可通过重试机制应对临时限流,同时控制请求频率:- 使用重试库(如
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("重试后仍触发限流,请检查账户配额或进一步降低请求频率")- 使用重试库(如
减少单次请求的token消耗
- 你的
max_tokens设为2048,对于简单问候请求完全冗余,可降低至50以内,减少token使用量。 - 精简prompt内容,避免不必要的文本占用token额度。
- 你的
验证API密钥有效性
确认API密钥未过期、未被撤销,且关联账户处于正常状态。
内容的提问来源于stack exchange,提问作者Shubham Srivastava
相关产品推荐
相关产品推荐

