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

为何手动输入OpenAI API Key正常,使用.env变量却触发错误?

解决OpenAI API Key通过.env变量加载失败的问题

问题描述

手动硬编码OpenAI API Key时接口调用正常,但通过process.env.OPENAI_API_KEY读取.env变量时触发「无效API密钥」错误,尽管console.log(process.env.OPENAI_API_KEY)能输出正确的密钥内容。

可能的解决方案

  • 检查.env文件格式:确保密钥没有被多余的引号或空格包裹,正确格式应为:

    OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    

    避免写成OPENAI_API_KEY="sk-xxxx"(引号会被识别为密钥的一部分)或OPENAI_API_KEY = sk-xxxx(等号前后的空格会导致读取异常)。

  • 确认.env文件位置:必须将.env文件放在项目根目录(与package.json同级),不能嵌套在子文件夹中,否则环境变量读取工具无法正确识别。

  • 确保环境变量工具提前加载:如果使用dotenv包管理环境变量,要在读取任何环境变量之前完成加载:

    // CommonJS 语法
    require('dotenv').config(); // 放在代码最顶部
    const APIKEY = process.env.OPENAI_API_KEY;
    const configuration = new Configuration({
      apiKey: APIKEY,
    });
    

    若是ESM模块,需在入口文件最顶部添加:

    import 'dotenv/config';
    
  • 清理缓存并重启服务:修改.env文件后,务必重启Node.js服务,避免旧的环境变量缓存导致读取异常。

  • 排除隐形字符干扰:可以通过打印密钥的字符串化内容和长度,排查是否存在换行、空格等隐形字符,必要时用trim()处理:

    const APIKEY = process.env.OPENAI_API_KEY;
    console.log('API Key长度:', APIKEY.length);
    console.log('API Key内容:', JSON.stringify(APIKEY));
    const configuration = new Configuration({
      apiKey: APIKEY.trim(),
    });
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:39:20