ai-sdk-next-openai/app/api/chat/route.ts
2025-09-26 15:46:29 +00:00

31 lines
674 B
TypeScript

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