我的JavaScript chatgpt openai实现一直给我一个HTTP 429

wkftcu5l  于 2023-06-30  发布在  Java
关注(0)|答案(1)|浏览(212)

下面是我的代码…我正在查看OpenAI控制台上的API使用情况,我远远低于限制。我从来没有得到过一个成功的回应。我正在从他们的文档中复制代码。我一直收到HTTP 429

const API_URL = "<https://api.openai.com/v1/chat/completions>";
const API_KEY = "YOUR_API_KEY";

const generate = async () => {

  try {
    // Fetch the response from the OpenAI API with the signal from AbortController
    const response = await fetch(API_URL, {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        Authorization: `Bearer ${API_KEY}`,
      },
      body: JSON.stringify({
        model: "gpt-3.5-turbo",
        messages: [{ role: "user", content: promptInput.value }],
      }),
    });

    const data = await response.json();
    resultText.innerText = data.choices[0].message.content;
  } catch (error) {
    console.error("Error:", error);
    resultText.innerText = "Error occurred while generating.";
  }
};
ijxebb2r

ijxebb2r1#

您可以通过查看标题来验证您达到的极限。
您可以 checkout 您的网络选项卡或将标题登录到控制台,类似于:console.log(response)console.log(response.headers)
然后,在标题部分,你应该看到类似的内容:

headers: {
    ...
    'openai-model': 'gpt-4',
    'x-ratelimit-limit-requests': '200',
    'x-ratelimit-limit-tokens': '40000',
    'x-ratelimit-remaining-requests': '199',
    'x-ratelimit-remaining-tokens': '39691', 
    'x-ratelimit-reset-requests': '300ms',
    'x-ratelimit-reset-tokens': '463ms',
    ...
  },

很可能您已经用完了每分钟的所有请求或每分钟的令牌。具体来说,x-ratelimit-remaining-requestsx-ratelimit-remaining-tokens标头将通过它们为零(或接近零)来告诉您是否达到了限制。
要更好地理解您的选项,请查看OpenAI's documentation on rate limits。它有大量有用的信息。
您还可以查看您的账户特定利率限制within your account area (login required)
假设每个模型都有不同的配额,您可以考虑将工作负载分散到几个类似的模型上作为解决方案。其他一些选项包括限制您自己的代码,在1分钟后以指数回退重试,发送更少的令牌,调整您的提示以返回更少的令牌,如果可能的话合并请求,甚至要求OpenAi增加速率限制。

相关问题