为什么我在用ChatGPT链接我的Next.js网站时收到了响应,但还是收到了401错误?

eufgjt7s  于 2023-03-29  发布在  其他
关注(0)|答案(1)|浏览(204)

我试图将ChatGPT纳入我的实践电子商务网站,将其用作聊天机器人。我导入了openAI并添加了一个功能,该功能向ChatGPT发送消息,然后控制台记录响应。在使用npm run dev运行网站时,我在终端中收到响应,但浏览器收到401错误。由于401错误是缺乏身份验证凭据,我如何接收响应?当我尝试使用useState在页面上呈现响应时,它不起作用。我似乎只能在终端中获得响应。当我在其他非Next.js应用程序中使用凭据时,它确实起作用。我的API密钥在我网站根文件夹中的.env.local文件中。浏览器中的401错误:未处理的运行时错误请求失败,状态代码为401调用堆栈createError node_modules/axios/lib/core/createError.js(16:0)settle node_modules/axios/lib/core/settle.js(17:0)XMLHttpRequest.onloadend node_modules/axios/lib/adapters/xhr.js(66:0)-我发现这令人困惑,因为我没有使用axios。

`import { Configuration, OpenAIApi } from "openai";

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

openai
.createChatCompletion({

model: "gpt-3.5-turbo", 
messages: [
{
  role: "user",
  content:
    "Hello ChatGPT, how are you?",
},
], 
})
.then((res) => {
console.log(res.data.choices[0].message.content); 
}); 

const Stylebot = () => {
return (
<>
  <p>Test ChatGPT</p>
</>
);
};

export default Stylebot;`
ugmeyewa

ugmeyewa1#

听起来你的令牌有问题。我建议你做一些类似的事情,以弄清楚发生了什么:

.then((res) => {
console.log(res.data.choices[0].message.content); 
}).catch(err => {
console.log({err})
});

我还建议你尝试打印出process.env.API_KEY-最有可能的问题是你的应用程序不能读取它。如果是这种情况,使用dotenv包将它添加到你的环境中。

相关问题