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

NextJS调用OpenAI API的createChatCompletion报401错误求助

Next.js API Router调用OpenAI createChatCompletion 401错误排查方案

核心排查方向及解决步骤

  • 环境变量加载验证
    Next.js API路由的环境变量加载逻辑和纯Node.js存在差异,需确认密钥正确读取:

    • 检查项目根目录.env.local文件,确保密钥变量名为OPENAI_API_KEY,无拼写错误,且文件未被.gitignore意外排除。
    • 在API路由代码中临时添加console.log(process.env.OPENAI_API_KEY),启动项目后查看终端输出,确认密钥正常加载(测试完成后删除该代码)。
    • 确保OpenAI实例初始化时正确引用环境变量:
      import OpenAI from 'openai';
      const openai = new OpenAI({
        apiKey: process.env.OPENAI_API_KEY,
      });
      
  • OpenAI包版本对齐
    不同版本的openai包调用接口的方式可能不同,导致请求格式错误触发401:

    • 分别在Next.js项目和纯Node.js测试项目中执行npm list openai,对比版本号,统一升级或降级至相同版本。
    • 若使用v4及以上版本的openai包,需使用新的调用语法,旧版createChatCompletion()已被废弃:
      // 新版正确调用方式
      const response = await openai.chat.completions.create({
        model: "gpt-3.5-turbo",
        messages: [{ role: "user", content: "你的请求内容" }]
      });
      
  • API路由上下文干扰排查
    检查API路由中的中间件或自定义代码是否修改了请求头:

    • 暂时移除路由中所有非必要的中间件(如日志、权限验证中间件),测试createChatCompletion是否恢复正常。
    • 确认代码中未篡改OpenAI实例的baseURL、defaultHeaders等配置,避免请求发送到错误端点。
  • 密钥权限与账户状态检查
    即使纯Node.js调用成功,仍需确认密钥权限和账户状态:

    • 登录OpenAI后台,查看该API密钥的权限配置,确保允许调用Chat Completion类接口。
    • 检查账户余额是否充足,部分场景下余额不足会返回401错误而非明确的余额提示。

内容的提问来源于stack exchange,提问作者Nam G VU

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 06:16:05