Cara Membetulkan Ralat Pelayan Kod 500 Seterusnya JS API
P粉513316221
2023-09-03 21:39:30
<p>Saya cuba membina chatbot menggunakan model OPEN AI GPT 4 dalam NextJS. Walau bagaimanapun, apabila saya menghantar permintaan POST ke http://localhost:3001/api/generate, saya menerima respons dengan kod status 500 dan mesej ralat berikut: </p>
<blockquote>
<p>TypeError: Tidak boleh membaca sifat yang tidak ditentukan (baca 'header'). </p>
</blockquote>
<p>/app/api/generate/route.ts</p>
<pre class="brush:php;toolbar:false;">import { NextResponse } daripada "next/server";
import { Konfigurasi, OpenAIApi } daripada "openai";
konfigurasi const = Konfigurasi baru({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = OpenAIApi baharu(konfigurasi);
eksport fungsi async POST(permintaan: Permintaan) {
const body = tunggu request.json();
const { prompt } = badan;
jika (!prompt || prompt === "") {
kembalikan Respons baharu("Sila hantar gesaan anda", { status: 400 });
}
cuba {
const aiResult = tunggu openai.createCompletion({
model: "gpt-4",
segera,
suhu: 0.9,
max_token: 8192,
});
const aiText =
aiResult.data.choices[0].text?.trim() || "Sesuatu telah berlaku!";
kembalikan NextResponse.json({ text: aiText });
} tangkap (ralat) {
console.log(error);
}
}</pre>
<p>Saya baru menggunakan NextJS 13, tetapi apabila saya cuba menghantar respons statik seperti "Hello World" saya tidak mendapat sebarang ralat</p>
Laluan API
Next.js mengharapkan objek permintaan sebagai parameter pertama, bukan objek permintaan. Oleh itu, anda perlu menambah
request: Request
更改为req: NextApiRequest
dalam kod anda. Selain itu, anda perlu menukar objek tindak balas daripada Respons kepada NextResponse.Untuk permintaan, Daripada ini
Di sini
Untuk maklum balas, Daripada ini
Di sini