OpenAI 微调引擎无法在 Node 中工作 - “找不到引擎”

Ver*_*ica 3 node.js openai-api

我使用自己的数据在 OpenAI 上微调了引擎。我可以毫无问题地访问 Playground 中的引擎,但是,当我尝试使用 Node 和 openai Node 库以编程方式访问它时,我收到“找不到引擎”错误。奇怪的是,我发誓它以前就有效。

无论如何,这是我的代码:

const { Configuration, OpenAIApi } = require("openai");

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

const openai = new OpenAIApi(configuration);
async function getDream() {
  const completion = await openai.createCompletion("davinci:ft-personal-2022-04-09-19-12-54", {
  prompt: "I dreamed",
});
  console.log(completion.data.choices[0].text);
}

getDream();
Run Code Online (Sandbox Code Playgroud)

这是错误:

error: {
        message: 'Engine not found',
        type: 'invalid_request_error',
        param: null,
        code: null
      }
Run Code Online (Sandbox Code Playgroud)

我尝试运行相同的代码,但使用常规引擎(davinci)。这样效果很好。我仔细检查了我的微调引擎的名称是否正确,并使用引擎 ID 进行了尝试,以防万一。似乎什么都不起作用。

PS - 我已经使用 OpenAI CLI 运行了这个程序,并且openai api completions.create -m davinci:ft-personal-2022-04-09-19-12-54 -p "I dreamed"运行得很好。

Ver*_*ica 6

我回来了,回答我自己的问题,希望对其他人有帮助。

似乎如果您使用自己的微调模型,则必须使用与使用默认模型之一不同的方法。相反createCompletion,您应该使用createCompletionFromModel. 所以上面的函数 ( getDream) 实际上应该是这样的:

async function getDream() {
  const response = await openai.createCompletionFromModel({
    model: 'davinci:ft-personal-2022-04-09-19-12-54',
    prompt: 'I dreamed'
    // add other parameters here
  });
}
Run Code Online (Sandbox Code Playgroud)

您可以在下面添加其他完成参数prompt,例如temperaturefrequency_penalty等。