Node.js调用OpenAI API遇Cannot find module '@openai/api'错误求助
问题分析与解决方案
错误原因
- 废弃包导致安装失败:
@openai/api是OpenAI早期的Node.js SDK,现已被官方废弃并从npm仓库移除,因此执行npm install @openai/api会返回404错误,无法完成安装。 - 代码与依赖不匹配:测试脚本中使用
require('openai'),但实际未正确安装官方当前维护的openai包,导致Node.js找不到对应模块。
解决步骤
1. 安装官方最新SDK
先卸载残留的无效依赖(如果之前尝试安装过),再安装官方当前的openai包:
# 卸载旧包(若有残留) npm uninstall @openai/api # 安装官方最新包 npm install openai
2. 适配新SDK修改代码
新的openai包API结构与旧版不同,需调整测试脚本:
const { OpenAI } = require('openai'); // 初始化客户端 const openai = new OpenAI({ apiKey: 'sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', }); async function runTest() { try { const gpt3Response = await openai.completions.create({ // 注意:davinci-codex已被官方淘汰,建议使用gpt-3.5-turbo-instruct替代 model: 'gpt-3.5-turbo-instruct', prompt: `Create a simple conversational response for beginners, with an easy question at the end, based on the input: "Hello, how are you?"`, max_tokens: 50, n: 1, stop: null, temperature: 0.5, }); console.log(gpt3Response.choices[0].text.trim()); } catch (error) { console.error(error); } } runTest();
备注:
davinci-codex模型已被官方终止服务,改用gpt-3.5-turbo-instruct可实现类似的文本补全功能。
3. 验证安装与执行
- 检查项目根目录的
package.json,确认dependencies中包含openai包:"dependencies": { "openai": "^4.x.x" } - 执行修改后的脚本:
node test.js
额外排查要点
- 确认Node.js版本:OpenAI官方SDK支持Node.js 16.14.0及以上版本,你当前的19.1.0符合要求,若后续遇兼容性问题,可尝试切换到LTS版本(如18.x)。
- 检查API密钥有效性:确保密钥未过期、额度充足,且拥有调用对应模型的权限。
- 网络环境:若在国内,需确认能正常访问OpenAI API(可通过代理或网络工具验证)。
内容的提问来源于stack exchange,提问作者Sascha Ehrentraut
相关产品推荐
相关产品推荐

