快速上手
本章用 AI SDK Core 打通一次非 UI 生成,再用 Next.js App Router 接上 useChat。默认模型字符串是 Gateway 的 openai/gpt-4.1-mini。官方 Quickstart 页面目前示例是 xai/grok-4.6;ID 会变,换成你账号里能用的即可。
先完成 安装与环境:Node 22+、pnpm add ai @ai-sdk/react zod、.env.local 里的 AI_GATEWAY_API_KEY。
1. 无 UI:generateText
适合脚本、定时任务、服务端一次性摘要。不需要 React。
直连 OpenAI 时改成:
generateText 还会给出 usage、finishReason、toolCalls 等字段,调试时先看这些。
2. 流式聊天:Route Handler
在 app/api/chat/route.ts:
发生了什么:
- 客户端送来
UIMessage[](含时间戳等 UI 元数据)。 convertToModelMessages(async)去掉 UI 字段,变成模型要的ModelMessage[]。streamText立刻开始流;必须消费result.stream,否则生成不会跑完。toUIMessageStream+createUIMessageStreamResponse把流包装成useChat认识的 SSE。
不要用旧博客里的 toDataStreamResponse()。
3. 页面:useChat
app/page.tsx 必须是客户端组件(React hooks):
默认 POST 到 /api/chat。用 sendMessage({ text }) 发消息;自己用 useState 管输入框。渲染走 message.parts,不要假设有单一 content 字符串。
打开 http://localhost:3000,输入一句话,应看到逐 token 出现的回复。
第一个任务清单
pnpm create next-app→pnpm add ai @ai-sdk/react zod- 配置
AI_GATEWAY_API_KEY - 先跑通上面的
generateText(可写在临时.mts里) - 加上
route.ts+page.tsx,确认流式聊天 - 把
model改成gateway('anthropic/claude-sonnet-4.5')或openai('gpt-5.1'),观察仍能工作
下一步把天气工具和 status 接上,见 useChat 与 工具调用。Next.js 超时与部署见 Next.js 集成。