如何修复 500 代码服务器错误 Next JS API
P粉513316221
2023-09-03 21:39:30
<p>我正在尝试使用 NextJS 中的 OPEN AI GPT 4 模型构建一个聊天机器人。但是,当我向 http://localhost:3001/api/generate 发送 POST 请求时,我收到状态代码 500 的响应和以下错误消息:</p>
<blockquote>
<p>类型错误:无法读取未定义的属性(读取“标头”)。</p>
</blockquote>
<p>/app/api/generate/route.ts</p>
<pre class="brush:php;toolbar:false;">import { NextResponse } from "next/server";
import { Configuration, OpenAIApi } from "openai";
const configutation = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configutation);
export async function POST(request: Request) {
const body = await request.json();
const { prompt } = body;
if (!prompt || prompt === "") {
return new Response("Please send your prompt", { status: 400 });
}
try {
const aiResult = await openai.createCompletion({
model: "gpt-4",
prompt,
temperature: 0.9,
max_tokens: 8192,
});
const aiText =
aiResult.data.choices[0].text?.trim() || "Something went wrong!";
return NextResponse.json({ text: aiText });
} catch (error) {
console.log(error);
}
}</pre>
<p>我是 NextJS 13 的新手,但是当我尝试发送“Hello World”之类的静态响应时,我没有遇到任何错误</p>
Next.js API 路由期望请求对象作为第一个参数,而不是请求对象。因此,您需要将代码中的
request: Request
更改为req: NextApiRequest
。此外,您需要将响应对象从 Response 更改为 NextResponse。对于请求, 由此而来
到此
对于响应, 由此而来
到此