运行OpenAI GPT-3代码报错:openai.completions is not a function
解决TypeError: openai.completions is not a function问题
问题根源是你使用的OpenAI Node.js SDK版本与教程代码不兼容:教程基于旧版(v3及以下)SDK编写,而你当前安装的是新版(v4+)SDK,两者API调用方式差异极大。
以下是两种可行的解决方式:
方式一:降级到兼容教程的旧版SDK
- 卸载当前SDK:
npm uninstall openai
- 安装v3版本:
npm install openai@3
- 你的原有代码可以直接运行(确认API密钥已正确设置)。
方式二:适配新版SDK(v4+)的写法
如果想保留新版本SDK,需要修改代码结构:
const OpenAI = require('openai'); // 实例化OpenAI客户端 const openai = new OpenAI({ apiKey: "你的API密钥" }); // 用async/await调用接口(新版推荐写法) async function fetchCompletion() { const completion = await openai.completions.create({ model: "text-davinci-003", // 旧版的engine参数已改为model prompt: "Hello, how are you?", max_tokens: 32, n: 1, stop: ".", temperature: 0.5, }); console.log(completion.choices[0].text); // 新版返回结构无需.data层级 } fetchCompletion();
关键变化说明
- 新版SDK需要先通过
new OpenAI()实例化客户端,不再直接调用全局的openai对象方法 - 旧版的
openai.completions()方法改为openai.completions.create() - 参数中的
engine字段替换为model - 返回结果的层级简化,无需
response.data,直接访问completion.choices
内容的提问来源于stack exchange,提问作者Dave Nixon
相关产品推荐
相关产品推荐

