recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment réparer l'erreur 500 du serveur de code Next JS API

<p>J'essaie de créer un chatbot en utilisant le modèle OPEN AI GPT 4 dans NextJS. Cependant, lorsque j'envoie une requête POST à ​​http://localhost:3001/api/generate, je reçois une réponse avec le code d'état 500 et le message d'erreur suivant : </p> <blockquote> <p>TypeError : Impossible de lire la propriété non définie (lire 'en-tête'). </p> </blockquote> <p>/app/api/generate/route.ts</p> <pre class="brush:php;toolbar:false;">importer { NextResponse } depuis "suivant/serveur" ; importer { Configuration, OpenAIApi } depuis "openai" ; configuration const = nouvelle configuration ({ apiKey : process.env.OPENAI_API_KEY, }); const openai = new OpenAIApi(configuration); exporter la fonction asynchrone POST (requête : requête) { const body = wait request.json(); const { invite } = corps ; if (!prompt || prompt === "") { return new Response ("Veuillez envoyer votre invite", { status: 400 }); } essayer { const aiResult = attendre openai.createCompletion({ modèle : "gpt-4", rapide, température : 0,9, max_tokens : 8192, }); const aiText = aiResult.data.choices[0].text?.trim() || "Quelque chose s'est mal passé !"; return NextResponse.json({ texte : aiText }); } attraper (erreur) { console.log(erreur); } }</pré> <p>Je suis nouveau sur NextJS 13, mais lorsque j'essaie d'envoyer une réponse statique comme "Hello World", je ne reçois aucune erreur</p>
P粉513316221P粉513316221481 Il y a quelques jours548

répondre à tous(1)je répondrai

  • P粉111927962

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

    Les routes API Next.js attendent l'objet de requête comme premier paramètre, pas l'objet de requête. Par conséquent, vous devez ajouter request: Request 更改为 req: NextApiRequest dans votre code. De plus, vous devez modifier l’objet de réponse de Response en NextResponse.

    Pour les demandes, De ceci

    export async function POST(request: Request) {

    Ici

    export default async function generateAPI(req: NextApiRequest) {

    Pour les réponses, De ceci

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

    Ici

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

    répondre
    0
  • Annulerrépondre