我在langchain库的帮助下在我的Next.js应用程序中实现了openAI API,它在localhost上工作得很好,但在Vercel(ProVersion)中它抛出了一个错误:
错误:(Azure)OpenAI API key not found at new OpenAIChat(file:///var/task/node_modules/langchain/dist/llms/openai-chat. js:184:19)at new OpenAI(file://var/task/node_modules/langchain/dist/llms/openai. js:54:20)at /var/task/.next/server/pages/api/tasks/ai.js:63:21 RequestId:472 c 0 bdb-dbbc-4cd 4 - 95 a3 - 1808 d 0 b6 a5 ac错误:运行时退出,但出现错误:exit status % 1运行时。ExitError
这个错误导致了我的应用程序中langchain node_module中的代码:
this.openAIApiKey =
fields?.openAIApiKey ?? getEnvironmentVariable("OPENAI_API_KEY");
this.azureOpenAIApiKey =
fields?.azureOpenAIApiKey ??
getEnvironmentVariable("AZURE_OPENAI_API_KEY");
if (!this.azureOpenAIApiKey && !this.openAIApiKey) {
throw new Error("(Azure) OpenAI API key not found");
}
我把OPENAI_API_KEY环境变量(与我的.env文件中的环境变量相同)放在Vercel中:
vercel_environmental_variable
在我的应用程序中,我把OPENAI_API_KEY放在.env文件中,并在我的后端加载它:
const apiKey = process.env.OPENAI_API_KEY;
const openAIModel = new OpenAI({
modelName: "gpt-3.5-turbo",
temperature: 0,
maxTokens: 2000,
openAIApiKey: apiKey,
});
我甚至可以在localhost中发布和获取API请求,当我不处理后端的OPENAI_API_KEY时(langchain模块直接从我的.env文件中获取)
const openAIModel = new OpenAI({
modelName: "gpt-3.5-turbo",
temperature: 0,
maxTokens: 2000,
});
我还尝试将模型更改为OpenAIChat,它在localhost上的工作原理与OpenAI模型相同,但在Vercel中也不是:
const openAIModel = new OpenAIChat({
modelName: "gpt-3.5-turbo",
temperature: 0,
maxTokens: 2000,
});
我希望这足以在Vercel中向openAI API发布请求,但它一次又一次地抛出相同的错误。
有人知道这里缺少了什么吗?
感谢您的评分纳斯蒂
1条答案
按热度按时间nfg76nw01#
我删除了Vercel中的环境变量并重新设置它,重新部署了项目,它工作了:-)