“错误:请求失败,状态代码为 401”与 OpenAI API for JavaScript

问题描述 投票:0回答:1

我正在尝试创建一个网络游戏,其中一个脚本涉及调用 OpenAI API 以完成聊天。我遵循了许多教程并彻底检查了我的代码。

  1. 我在 OpenAI 网站上生成了一个 API 密钥。
  2. 为我的项目下载了 dotenv 和 OpenAI 依赖项。
  3. 将密钥保存在名为“GPT3_API_KEY”的 .env 文件中
  4. 这是我的代码:
require('dotenv').config();
const { Configuration, OpenAIApi } = require("openai")

const openai = new OpenAIApi(new Configuration({ 
    apiKey: process.env.GPT3_API_KEY,
}));

// Defining variables
const systemPrompt = "You are an AI assistant that generates positive and/or negative news headlines about fictional cryptocurrencies for a video game. Headlines should be relatively unique each time.";
let conversationHistory = [
    {role: "system", content: systemPrompt},
];

// Not sure about async and await
async function generateHeadlines(coinName, numberPos, numberNeg, conversationHistory) {
    let userPrompt = `Generate ${numberPos} positive and ${numberNeg} negative news headlines for my fictional cryptocurrency coin: ${coinName}.`;
    // console.log(userPrompt);
    conversationHistory.push({role: "user", content: userPrompt});
    try {
        const response = await openai.createChatCompletion({
            model: "gpt-3.5-turbo-0301",
            messages: conversationHistory,
            temperature: 0.4,
        });
    
        // Extract news articles from response and process
        // console.log(response);
        let assistantMessage = response.choices[0].messages.content;
        // console.log(assistantMessage)
        let articles = assistantMessage.split("\n");
        let processedArticles = articles.map((article, index) => {
            return {
              index: index + 1,
              content: article.trim(),
            };
          });
        conversationHistory.push({ role: 'assistant', content: assistantMessage });
        console.log(processedArticles);
        return processedArticles;

    } catch (error) {
        console.log(error)
    }
}

articles = generateHeadlines("Bitcoin", 5, 5, conversationHistory);

但是,当我运行

npm run dev
时,出现以下错误:

Error: Request failed with status code 401
    at createError (/Users/aryamandarda/Desktop/Berkeley/Projects/HackMonth/terrader/node_modules/axios/lib/core/createError.js:16:15)
    at settle (/Users/aryamandarda/Desktop/Berkeley/Projects/HackMonth/terrader/node_modules/axios/lib/core/settle.js:17:12)
    at IncomingMessage.handleStreamEnd (/Users/aryamandarda/Desktop/Berkeley/Projects/HackMonth/terrader/node_modules/axios/lib/adapters/http.js:322:11)
    at IncomingMessage.emit (node:events:523:35)
    at endReadableNT (node:internal/streams/readable:1367:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)

我知道这是某种身份验证失败,但我不知道哪里出错了。任何建议将不胜感激!

javascript http-status-code-401 openai-api
1个回答
0
投票

您收到的错误消息表明 API 调用因 authentication 错误而失败,特别是状态代码 401,表示“Unauthorized”。这表明您使用的 API 密钥无效或未获得访问 API 的授权。

以下是您可以采取的一些步骤来解决问题:

  1. 仔细检查您在 OpenAI 网站上生成的 API 密钥是 更正并匹配您存储在 .env 文件中的那个。制作 确保没有拼写错误或格式错误。

  2. 验证您的 OpenAI API 密钥是否有权访问您的 API 正在尝试使用。检查 OpenAI 仪表板以确保您 拥有正确的 API 权限。

  3. 确认安装了OpenAI包和dotenv 正确包装。确保 package.json 文件具有正确的 依赖关系。

  4. 验证您是否已正确配置 dotenv 包以读取 .env 文件中的变量。

  5. 检查服务器或网络连接是否有任何问题。 尝试 ping OpenAI 服务器或检查是否有任何定期维护 他们的状态页面。

  6. 检查您的 API 密钥是否设置了任何速率限制。如果你有 超过了速率限制,你需要等待一段时间才能 提出额外要求。

  7. 尝试在代码中添加一些 console.log 语句以打印出 API 密钥并查看它是否被正确读取。也可以打印出来 响应和错误消息以获取有关内容的更多信息 出错了。

如果这些步骤都不能解决问题,您可以尝试联系 OpenAI 支持以获得进一步的帮助。

© www.soinside.com 2019 - 2024. All rights reserved.