So beheben Sie den 500-Code-Serverfehler Nächste JS-API
P粉513316221
2023-09-03 21:39:30
<p>Ich versuche, einen Chatbot mit dem OPEN AI GPT 4-Modell in NextJS zu erstellen. Wenn ich jedoch eine POST-Anfrage an http://localhost:3001/api/generate sende, erhalte ich eine Antwort mit dem Statuscode 500 und der folgenden Fehlermeldung: </p>
<blockquote>
<p>TypeError: Eigenschaft von undefiniert kann nicht gelesen werden (read 'header'). </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 = neue Konfiguration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
Asynchrone Funktion exportieren POST(request: Request) {
const body = waiting request.json();
const { prompt } = body;
if (!prompt || prompt === "") {
return new Response("Bitte senden Sie Ihre Eingabeaufforderung", { Status: 400 });
}
versuchen {
const aiResult = waiting openai.createCompletion({
Modell: „gpt-4“,
prompt,
Temperatur: 0,9,
max_tokens: 8192,
});
const aiText =
aiResult.data.choices[0].text?.trim() || „Etwas ist schiefgelaufen!“;
return NextResponse.json({ text: aiText });
} Catch (Fehler) {
console.log(error);
}
}</pre>
<p>Ich bin neu bei NextJS 13, aber wenn ich versuche, eine statische Antwort wie „Hallo Welt“ zu senden, erhalte ich keine Fehlermeldungen</p>
Next.js API 路由期望请求对象作为第一个参数,而不是请求对象。因此,您需要将代码中的
request: Request
更改为req: NextApiRequest
。此外,您需要将响应对象从 Response 更改为 NextResponse。对于请求, 由此而来
到此
对于响应, 由此而来
到此