在Node.js服务器部署LangChain代码时的OpenAI API密钥配置问题
解决方案
核心原因
LangChain v0.1版本后,OpenAI集成方式发生了更新,旧版的Configuration构造函数和直接设置OpenAI.api_key的写法已不再适用,这是你遇到两个报错的根本原因。
正确配置方式
1. 环境变量配置(生产环境推荐)
在Node.js环境中设置OPENAI_API_KEY环境变量,LangChain的OpenAI类会自动读取该变量:
- 临时启动时设置:
OPENAI_API_KEY=你的API密钥 node 你的脚本文件名.js
- 用
.env文件持久化(需安装dotenv包):- 安装依赖:
npm install dotenv - 在项目根目录创建
.env文件,写入:
OPENAI_API_KEY=你的API密钥- 在代码顶部加载环境变量:
import dotenv from "dotenv"; dotenv.config(); import { OpenAI } from "@langchain/openai"; const model = new OpenAI({ temperature: 0.7 // 可选:调整生成文本的随机性 }); - 安装依赖:
2. 代码中直接传入API密钥(测试场景可用)
无需使用Configuration,直接在OpenAI构造函数中传入apiKey参数:
import { OpenAI } from "@langchain/openai"; const model = new OpenAI({ apiKey: "你的API密钥", temperature: 0.7 });
错误原因解析
OpenAI or Azure OpenAI API key not found:LangChain的OpenAI类不会读取静态的OpenAI.api_key属性,必须通过构造函数参数或环境变量传递密钥。TypeError: Configuration is not a constructor:新版LangChain不再依赖旧版OpenAI SDK的Configuration类,所有配置直接通过OpenAI构造函数的参数传入。
额外注意事项
- 确保安装的是
@langchain/openai包,而非旧版的langchain/llms/openai,安装命令:npm install @langchain/openai - 生产环境禁止将API密钥硬编码到代码中,必须使用环境变量或密钥管理服务。
内容的提问来源于stack exchange,提问作者Bill
相关产品推荐
相关产品推荐

