实战案例
三个由浅入深的例子:流式聊天、多工具助手、无 UI 结构化抽取。模型用 Gateway 字符串 openai/gpt-4.1-mini(ID 会变,换成你账号里能用的)。依赖见 安装。
案例 1:App Router 流式聊天
目标: Next.js 首页对话;密钥只在 Route Handler。
验证:pnpm run dev,发「用一句话介绍 AI SDK」,应逐字出现回复。刷新后前端状态清空(未做持久化是正常的)。DefaultChatTransport 的 body 可带 chatId 做服务端存储——那是产品层,不是 SDK 必选项。更多 status / stop 见 useChat。
案例 2:天气 + 单位换算助手
在案例 1 的 streamText 上加工具,并设 stopWhen: isStepCount(5),否则模型调完工具就停、没有自然语言总结。完整 tool() 定义见 工具调用。
前端对 tool-weather / tool-convertFahrenheitToCelsius 做 JSON.stringify 或卡片。问「上海现在多少摄氏度?」应看到两次工具 part,再跟一句回答。真实天气 API 的 Key 留在服务端;校验 location,不要把原始字符串拼进 URL。
案例 3:无 UI 结构化抽取
适合脚本、Webhook、队列 worker——不经过 useChat。
边生成边显示:改 streamText + partialOutputStream,或前端 useObject。本地模型把 model 换成 Ollama 兼容实例(见 Provider);小模型 JSON 差时换更大云模型。