import { openai } from '@ai-sdk/openai'; import { consumeStream, convertToModelMessages, streamText, UIMessage, } from 'ai'; export const maxDuration = 30; export async function POST(req: Request) { const { messages }: { messages: UIMessage[] } = await req.json(); const prompt = convertToModelMessages(messages); const result = streamText({ model: openai('gpt-4o'), prompt, abortSignal: req.signal, }); return result.toUIMessageStreamResponse({ onFinish: async ({ isAborted }) => { if (isAborted) { console.log('Aborted'); } }, consumeSseStream: consumeStream, // needed for correct abort handling }); }