如何解决Node.js中Langchain相关的ERR_PACKAGE_PATH_NOT_EXPORTED错误?
问题与解决思路
问题详情
使用Node.js结合Langchain开发时,运行代码出现导出路径错误:
业务代码
import "dotenv/config"; import { ChatOpenAI } from "@langchain/openai"; const chatModel = new ChatOpenAI({ openAIApiKey: process.env.OPENAI_KEY, }); const response = await chatModel.invoke("hello"); console.log(response);
报错信息
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './utils/function_calling' is not defined by "exports" in C:\\REWORD\\server\\node_modules\\@langchain\\core\\package.json imported from C:\\REWORD\\server\\node_modules\\@langchain\\openai\\dist\\chat_models.js
当前依赖配置
{ "dependencies": { "@langchain/openai": "^0.0.23", "langchain": "^0.1.30", }, "overrides": { "@langchain/core": "0.1.5" } }
问题原因
Langchain生态下的各个包(@langchain/core、@langchain/openai、langchain)版本必须严格兼容。当前强制指定了@langchain/core@0.1.5,但搭配的@langchain/openai@0.0.23版本过旧,两者内部导出结构不匹配,导致@langchain/openai找不到@langchain/core中对应的路径。
解决步骤
移除版本强制覆盖:删除
package.json中overrides字段下的@langchain/core配置,让包管理器自动安装与@langchain/openai、langchain匹配的@langchain/core版本。清理并重装依赖:
- 删除项目根目录下的
node_modules文件夹 - 删除
package-lock.json(npm)或yarn.lock(yarn)文件 - 执行
npm install或yarn install重新安装依赖
- 删除项目根目录下的
可选:手动指定兼容版本组合
若需要固定版本,可将@langchain/openai升级到与langchain@0.1.30兼容的版本,示例配置:{ "dependencies": { "@langchain/openai": "^0.1.10", "langchain": "^0.1.30" } }
内容的提问来源于stack exchange,提问作者Jhj
相关产品推荐
相关产品推荐

