gpt4 book ai didi

javascript - 将数组数据传递给 createChatCompletion ChatGPT 时出错

转载 作者:行者123 更新时间:2023-12-02 22:47:55 25 4
gpt4 key购买 nike

我正在探索 chatGPT API 文档。我创建了以下数组并将其发送以从 ChatGPT API 生成响应。效果很好。

但是每当我将对象插入该数组然后将其发送到 ChatGPT API 时,它都会显示错误。

const { Configuration, OpenAIApi } = require('openai');
const configuration = new Configuration({
apiKey: 'Your OPENAI_API_KEY',
});

const chatGPTProvider = async () => {
try {
const url = 'https://api.openai.com/v1/chat/completions';

let data = [
{ role: 'system', content: 'You are a helpful assistant.' },
{
role: 'user',
content: 'Act as an intelligent AI.',
},
];

// data.push({ role: 'sytem', content: 'Hola GPT' });

// console.log(data);

const resp = await openai.createChatCompletion({
model: 'gpt-3.5-turbo',
messages: data,
});

return { status: 'SUCCESS', result: resp.data.choices[0].message };
} catch (ex) {
console.log(ex.message);

return { status: 'ERROR', result: null };
}
};

这段代码工作正常。当您取消注释该推送方法时,它开始给出错误。

您能告诉我为什么只将数据插入数组会导致错误吗?

文档:https://platform.openai.com/docs/api-reference/chat/create?lang=node.js

我收到以下错误错误:请求失败,状态代码 400在createError处(/home/sushant007/Interview-Project/GPT-chatbot/server/node_modules/openai/node_modules/axios/lib/core/createError.js:16:15)解决时(/home/sushant007/Interview-Project/GPT-chatbot/server/node_modules/openai/node_modules/axios/lib/core/settle.js:17:12)在 IncomingMessage.handleStreamEnd (/home/sushant007/Interview-Project/GPT-chatbot/server/node_modules/openai/node_modules/axios/lib/adapters/http.js:322:11)在 IncomingMessage.emit (节点:事件:524:35)在 endReadableNT(节点:内部/流/可读:1378:12)在 process.processTicksAndRejections (节点:internal/process/task_queues:82:21)

最佳答案

您需要调用 JSON.stringify(),因为 ChatGPT API 正在对已解析的对象调用 JSON.parse(),这应该会引发错误.

const { Configuration, OpenAIApi } = require('openai');
const configuration = new Configuration({
apiKey: 'Your OPENAI_API_KEY',
});

const chatGPTProvider = async () => {
try {
const url = 'https://api.openai.com/v1/chat/completions';

let data = [
{ role: 'system', content: 'You are a helpful assistant.' },
{
role: 'user',
content: 'Act as an intelligent AI.',
},
];

data.push(JSON.stringify({ role: 'sytem', content: 'Hola GPT' }));

console.log(data);

const resp = await openai.createChatCompletion({
model: 'gpt-3.5-turbo',
messages: data,
});

return { status: 'SUCCESS', result: resp.data.choices[0].message };
} catch (ex) {
console.log(ex.message);

return { status: 'ERROR', result: null };
}
};

400 状态代码可能意味着服务器无法解析的格式错误或奇怪的语法。所以我假设这就是问题所在,所以尝试 JSON.stringify() 方法。

关于javascript - 将数组数据传递给 createChatCompletion ChatGPT 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76688843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com