下面是我的代码片段:
const { Configuration, OpenAI, OpenAIApi } = require ("openai");
const configuration = new Configuration({
apiKey: 'MY KEY'
})
const openai = new OpenAIApi(configuration)
async function start() {
const response = await openai.createChatCompletion({
model:"text-davinci-003",
prompt: "Write a 90 word essay about Family Guy",
temperature: 0,
max_tokens: 1000
})
console.log(response.data.choices[0].text)
}
start()
当我运行时:node index
我遇到了这个问题:
data: {
error: {
message: 'Invalid URL (POST /v1/chat/completions)',
type: 'invalid_request_error',
param: null,
code: null
}
}
},
isAxiosError: true,
toJSON: [Function: toJSON]
}
节点. js版本18.15.0
我已经在互联网上找遍了,尝试了一些解决方案,但似乎没有任何工作。请帮助!
当我在网上查找这个问题时,通常其他人都有一些链接附在他们的代码上。我是这个问题的初学者,所以任何帮助都非常感谢
2条答案
按热度按时间c6ubokkw1#
TL;DR将
text-davinci-003
作为GPT-3模型处理,参见OPTION 1下的代码。简介
乍一看,作为过去几个月一直在使用OpenAI API的人,我认为如果你阅读OpenAI官方文档,答案是直接而简单的。好吧,我再次阅读了文档,现在我明白了为什么你会感到困惑。
困惑1
您想使用
text-davinci-003
模型。此模型最初来自GPT-3模型家族。但如果您查看OpenAI models overview并单击GPT-3,您将不会发现text-davinci-003
列为GPT-3模型。这是意料之外的。困惑二
此外,
text-davinci-003
被列为GPT-3.5型号。困惑三
如果这还不够令人困惑,如果你看一下OpenAI model endpoint compatibility,你会发现
text-davinci-003
列在/v1/completions
端点下。这个API端点用于GPT-3模型家族。等等,什么?
text-davinci-003
未列出GPT-3型号,列出GPT-3.5型号,但兼容GPT-3 API端点,这没有任何意义。测试
text-davinci-003
可以被视为GPT-3模型或GPT-3.5模型,或者两者都可以?让我们做一个测试。选项1:将
text-davinci-003
视为GPT-3型号--〉IT WORKS ✓如果你把
text-davinci-003
当作GPT-3模型,那么运行test-1.js
,OpenAI将返回以下完成:这的确是一个考验
test-1.js
选项二:将
text-davinci-003
视为GPT-3.5型号--〉它无法工作如果你把
text-davinci-003
当作GPT-3.5模型,然后运行test-2.js
,OpenAI会返回以下错误:test-2.js
结论
将
text-davinci-003
视为GPT-3模型。参见OPTION 1下的代码。qcbq4gxm2#
您正在混合OpenAI API的两种功能。
您可以从提示创建一次性完成,他们称之为Completions,或者您可以从代理和用户之间的讨论创建完成,他们称之为ChatCompletion。
根据您要使用的参数不同,参数也会有所不同。
在第一种情况下应该是
在另一种情况下,您需要指定消息和角色。
查看API文档,了解两种不同API之间的差异。