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

调用GPT-3.5 API时遇openai模块导出成员错误求助

OpenAI SDK 导入报错原因及修复方案

报错原因

你遇到的问题是因为OpenAI官方SDK从v3版本升级到v4版本后,API结构发生了根本性变化——原来的Configuration、OpenAIApi类在v4版本中已被移除,所以会提示"无导出成员"的错误。

修复方案

直接适配v4版本的SDK写法即可(官方已停止v3维护,推荐使用新版),修改后的代码如下:

import { OpenAI } from "openai";
import { auth } from "@clerk/nextjs";
import { NextResponse } from "next/server";

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

export async function POST(req: Request) {
  try {
    const { userId } = auth();
    const body = await req.json();
    const { messages } = body;

    if (!userId) {
      return new NextResponse("未授权", { status: 401 });
    }

    if (!openai.apiKey) {
      return new NextResponse("OpenAI API Key 未配置", { status: 500 });
    }

    if (!messages) {
      return new NextResponse("消息内容为必填项", { status: 400 });
    }

    const response = await openai.chat.completions.create({
      model: "gpt-3.5-turbo",
      messages,
    });

    return NextResponse.json(response.choices[0].message);
  } catch (error) {
    console.log("[CONVERSATION_ERROR]", error);
    return new NextResponse("服务器内部错误", { status: 500 });
  }
}

关键改动说明

  • 导入对象从{ Configuration, OpenAIApi }改为{ OpenAI }
  • 初始化方式简化为直接实例化OpenAI类,传入API密钥
  • 聊天接口调用从openai.createChatCompletion改为openai.chat.completions.create
  • 响应数据路径从response.data.choices[0].message改为response.choices[0].message

备选方案(不推荐)

如果一定要沿用旧版v3的代码写法,可以降级安装v3版本的SDK:

npm install openai@3.3.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 02:57:02