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

Node.js中使用OpenAI SDK调用API时出现core.js报错求助

问题描述

在Node.js环境中使用OpenAI API,通过OpenAI SDK实现GPT文本补全功能时,运行报错,错误指向/node_modules/openai/core.js:44行的代码:

const isJSON = contentType?.includes('application/json') || contentType?.includes('application/vnd.api+json');

应用因此崩溃,无法定位原因。使用的代码如下:

import OpenAI from 'openai';

const openai = new OpenAI({
    apiKey: process.env.OPENAI_API_KEY,
});

export const gptResponse = async (req, res) => {
    try {
        const { message } = req.body;
        const getResponse = await openai.chat.completions.create({
            model: 'gpt-3.5-turbo',
            messages: [
                {
                    role: 'system',
                    content: 'You are a helpful assistant.',
                },
                {
                    role: 'user',
                    content: message,
                },
            ],
        });
        console.log(getResponse.data.choices[0].message.content);
        return res.json(getResponse.data.choices[0].message.content);
    } catch (err) {
        console.log(err);
        return res.status(400).send('Error. Try again.');
    }
};
解决方案
  • 升级Node.js版本:OpenAI v4及以上版本SDK要求Node.js版本≥18.17.0或≥20.6.0,低版本对可选链操作符(?.)等语法支持不足,会触发core.js中的代码异常,升级到符合要求的版本即可解决。
  • 修正响应数据访问方式:OpenAI v4 SDK的响应结构已调整,无需通过.data属性获取内容,直接访问getResponse.choices[0].message.content即可。原代码中getResponse.data会返回undefined,后续链式访问会引发异常,间接导致core.js报错。修正后的代码片段:
console.log(getResponse.choices[0].message.content);
return res.json(getResponse.choices[0].message.content);
  • 验证API密钥有效性:确认process.env.OPENAI_API_KEY已正确加载,可在初始化OpenAI实例前添加console.log(process.env.OPENAI_API_KEY)检查,空密钥会导致请求失败,触发异常流程。
  • 更新OpenAI SDK:执行npm update openai或yarn upgrade openai将SDK更新到最新稳定版,修复可能存在的内部响应解析逻辑bug。

内容的提问来源于stack exchange,提问作者Lawrence

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 23:43:27