cari

Rumah  >  Soal Jawab  >  teks badan

Cara Membetulkan Ralat Pelayan Kod 500 Seterusnya JS API

<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粉513316221P粉513316221437 hari yang lalu513

membalas semua(1)saya akan balas

  • P粉111927962

    P粉1119279622023-09-04 17:56:31

    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 });

    balas
    0
  • Batalbalas