OpenAI API 密钥在我的 React 应用程序中不起作用

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

我正在尝试在我的 React 应用程序中创建一个聊天机器人,但无法生成 LLM 驱动的响应。我一直在研究文档并查看教程,但无法修复。

我尝试为我的聊天机器人设置一个功能,调用api密钥,导入openai,设置gpt-3.5-turbo模型的参数,包括温度。 catch(错误)部分有一个“错误生成响应”的

setResponse 
,这就是用户输入问题后我得到的全部内容。

try {
    const response = await openai.createCompletion({
        model: 'gpt-3.5-turbo',
        prompt: question,
        max_tokens: 100,
        n: 1,
        stop: '\n',
        temperature: 1.17,
        headers: {
            Authorization: `Bearer ${API_KEY}`,
        }
});
javascript reactjs chatbot openai-api
1个回答
1
投票

首先,正如@KenWhite 建议的那样,解决基本问题。正确使用

try...catch
语句如下:

try {
  // Your code here
} catch (error) {
  console.error(error);
}

问题

注意:OpenAI NodeJS SDK

v4
于2023年8月16日发布,是对SDK的完全重写。请参阅
v3
v4
迁移指南

您在问题中发布的代码存在一些问题。根据您使用的是 OpenAI NodeJS SDK

v3
还是
v4
,以下问题的解决方案有所不同。

要检查您的 OpenAI NodeJS SDK 版本,请运行以下命令:

npm info openai version

问题 1:向 API 端点传递无效参数

您尝试将

headers
作为参数传递到 API 端点,这不是有效参数。删除它。

解决方案

您需要按如下方式设置 Bearer 令牌...

• 如果您有 OpenAI NodeJS SDK

v3
:

import { Configuration, OpenAIApi } from 'openai';

const configuration = new Configuration({
  apiKey: process.env.OPENAI_API_KEY,
});

const openai = new OpenAIApi(configuration);

• 如果您有 OpenAI NodeJS SDK

v4
:

import OpenAI from 'openai';

const openai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
});

问题2:使用错误的方法名称

您想要使用

gpt-3.5-turbo
模型(即 Chat Completions API)。使用正确的方法名称。

解决方案

• 如果您有 OpenAI NodeJS SDK

v3
:

  • openai.createCompletion
    <-- Wrong ✘
  • openai.createChatCompletion
    <-- Correct ✔

• 如果您有 OpenAI NodeJS SDK

v4
:

  • openai.completions.create
    <-- Wrong ✘
  • openai.chat.completions.create
    <-- Correct ✔

问题 3:使用
prompt
参数

您想要使用

gpt-3.5-turbo
模型(即 Chat Completions API)。

Chat Completions API 使用

messages
参数,而 Completions API 使用
prompt
参数。

解决方案

使用

messages
参数而不是
prompt
参数。


最终解决方案

• 如果您有 OpenAI NodeJS SDK

v3
,请尝试以下操作:

import { Configuration, OpenAIApi } from 'openai';

const configuration = new Configuration({
  apiKey: process.env.OPENAI_API_KEY,
});

const openai = new OpenAIApi(configuration);

try {
  const chatCompletion = await openai.createChatCompletion({
    model: 'gpt-3.5-turbo',
    messages: [{ role: 'user', content: 'Hello world' }],
    max_tokens: 100,
    n: 1,
    stop: '\n',
    temperature: 1.17,
  });

  console.log(chatCompletion.data.choices[0].message);
} catch (error) {
  console.error(error);
}

• 如果您有 OpenAI NodeJS SDK

v4
,请尝试以下操作:

import OpenAI from 'openai';

const openai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
});

try {
  const chatCompletion = await openai.chat.completions.create({
    model: 'gpt-3.5-turbo',
    messages: [{ role: 'user', content: 'Hello world' }],
    max_tokens: 100,
    n: 1,
    stop: '\n',
    temperature: 1.17,
  });

  console.log(chatCompletion.choices[0].message);
} catch (error) {
  console.error(error);
}
© www.soinside.com 2019 - 2024. All rights reserved.