Cara Membetulkan Ralat Pelayan Kod 500 Seterusnya JS API
P粉513316221
P粉513316221 2023-09-03 21:39:30
0
1
521
<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>
P粉513316221
P粉513316221

membalas semua(1)
P粉111927962

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

export async function POST(request: Request) {

Di sini

export default async function generateAPI(req: NextApiRequest) {

Untuk maklum balas, Daripada ini

return new Response("Please send your prompt", { status: 400 });

Di sini

return new NextResponse("Please send your prompt", { status: 400 });
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan