You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行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

  1. 卸载当前SDK:
npm uninstall openai
  1. 安装v3版本:
npm install openai@3
  1. 你的原有代码可以直接运行(确认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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 13:41:23