import {
convertWidgetMessagesToModelMessages,
createOpenAI,
stepCountIs,
streamText,
type UIMessage,
} from "@openchatwidget/sdk";
app.post("/api/chat", async (request, response) => {
const { messages } = request.body as { messages: UIMessage[] };
const openai = createOpenAI({
apiKey: process.env.OPENAI_API_KEY,
});
const result = streamText({
model: openai("gpt-5-mini"),
system:
"You are an assistant. Use web_search for current events or up-to-date information.",
messages: await convertWidgetMessagesToModelMessages(messages),
stopWhen: stepCountIs(5),
tools: {
web_search: openai.tools.webSearch({
externalWebAccess: true,
searchContextSize: "medium",
}),
},
});
result.pipeUIMessageStreamToResponse(response);
});