带proj-前缀的OpenAI API Key从.env读取失效求助
问题描述
在基于Next.js/React/TypeScript集成OpenAI API的项目中,使用旧格式sk-xxxxx的API Key时,通过process.env.OPENAI_API_KEY从.env文件读取并初始化OpenAI实例可正常工作。但改用新的项目型API Key(格式sk-proj-xxxxx)后,出现invalid_api_key错误,排查发现从环境变量读取的Key丢失了proj-部分。直接将Key作为字符串传入初始化则可正常运行。
相关代码(route.ts)
import { auth } from "@clerk/nextjs/server"; import { NextResponse } from "next/server"; import OpenAI from "openai"; const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY, // 问题出在这里 }); const instructionMessage = { role: "system", content: `blah blah instructions`, }; async function POST(req: Request) { try { const { userId } = auth(); const body = await req.json(); const { messages } = body; const lastMessage = messages[messages.length - 1]; if (!userId) { return new NextResponse("Unauthorized", { status: 401 }); } if (!openai.apiKey) { return new NextResponse("OpenAi Api Key not configured"), { status: 500 }; } if (!messages || messages.length === 0) { return new NextResponse("Input Required", { status: 400 }); } const response = await openai.chat.completions.create({ model: "gpt-4o-mini", messages: [instructionMessage, lastMessage], }); return NextResponse.json(response.choices[0].message); } catch (error) { console.log("[CODE_ERROR]", error); return new NextResponse("Internal error", { status: 500 }); } } export { POST };
解决思路
- 检查.env文件格式:确保.env中
OPENAI_API_KEY=sk-proj-xxxxx无多余空格、引号,也未被转义。直接复制完整Key,不要手动修改格式。 - 验证环境变量读取结果:在POST函数开头添加日志
console.log("API Key:", process.env.OPENAI_API_KEY);,查看终端输出确认Key的完整度。 - 延迟初始化OpenAI实例:将OpenAI实例的初始化移到POST函数内部,避免模块加载阶段环境变量未完全加载的问题。修改示例:
async function POST(req: Request) { try { const apiKey = process.env.OPENAI_API_KEY; if (!apiKey) { return new NextResponse("OpenAi Api Key not configured", { status: 500 }); } const openai = new OpenAI({ apiKey }); // 内部初始化 // 后续逻辑保持不变 } } - 确认Next.js环境变量配置:确保.env文件在项目根目录,变量名无拼写错误(服务端变量无需加
NEXT_PUBLIC_前缀)。 - 清理缓存并重启服务:执行
npm run build或重启开发服务器,确保新环境变量被加载。 - 升级OpenAI SDK:旧版本SDK可能不支持新格式Key,执行
npm update openai升级到最新版本。
内容的提问来源于stack exchange,提问作者itsolidude
相关产品推荐
相关产品推荐

