import { openai } from "@ai-sdk/openai"; import { frontendTools } from "@assistant-ui/react-ai-sdk"; import { type JSONSchema7, streamText, convertToModelMessages, type UIMessage, } from "ai"; export async function POST(req: Request) { const { messages, system, tools, }: { messages: UIMessage[]; system?: string; tools?: Record; } = await req.json(); const result = streamText({ model: openai.responses("gpt-5.4-nano"), messages: await convertToModelMessages(messages), system, tools: { ...frontendTools(tools ?? {}), }, providerOptions: { openai: { reasoningEffort: "low", reasoningSummary: "auto", }, }, }); return result.toUIMessageStreamResponse({ sendReasoning: true, onError: (error) => error instanceof Error ? error.message : String(error), messageMetadata: ({ part }) => { if (part.type === "finish") { return { usage: part.totalUsage, }; } if (part.type === "finish-step") { return { modelId: part.response.modelId, }; } return undefined; }, }); }