我正在尝试在我的 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}`,
}
});
首先,正如@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
您尝试将
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,
});
您想要使用
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 ✔prompt
参数您想要使用
gpt-3.5-turbo
模型(即 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);
}