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

26 lines
706 B
TypeScript

import { openai } from '@ai-sdk/openai';
import { saveChat } from '@util/chat-store';
import { convertToModelMessages, streamText, UIMessage } from 'ai';
export async function POST(req: Request) {
const { messages, chatId }: { messages: UIMessage[]; chatId: string } =
await req.json();
const result = streamText({
model: openai('gpt-4o-mini'),
messages: convertToModelMessages(messages),
});
return result.toUIMessageStreamResponse({
originalMessages: messages,
messageMetadata: ({ part }) => {
if (part.type === 'start') {
return { createdAt: Date.now() };
}
},
onFinish: ({ messages }) => {
saveChat({ chatId, messages });
},
});
}