用途:整理 Vercel AI SDK 5 的常见开发模式,帮助在构建聊天、流式输出、工具(函数)调用等 AI 功能时使用 v5 写法,并处理从 AI SDK 4 的迁移。
主要能力与变更:
- 客户端 Hook 迁移:useChat 从 "ai" 改为从 "@ai-sdk/react" 导入,并改用 transport 配置,例如 new DefaultChatTransport({ api: "/api/chat" });发送消息由 handleSubmit 改为 sendMessage({ text: input })。
- UIMessage 结构变化:message.content 字符串改为 message.parts 数组,part 类型包括 text、image、tool-call、tool-result;提取文本需过滤 type === "text" 后拼接。
- 服务端路由:使用 streamText 配合模型(如 openai("gpt-4o")),返回 result.toDataStreamResponse()。
- 工具调用:在 streamText 的 tools 中用 tool({ description, parameters: z.object(...), execute }) 定义,参数校验使用 zod。
- 文本补全:useCompletion 配合 DefaultCompletionTransport 使用,调用 complete(...) 触发。
- LangChain 集成:通过 @ai-sdk/langchain 的 toUIMessageStream 将 LangChain 流转换为 UI 消息流。
- 错误处理:useChat 支持 onError 回调,并可读取 error 展示与重试。
使用方式:按上述模式在 React 客户端引入 @ai-sdk/react 的 Hook,在服务端路由(如 app/api/chat/route.ts)用 streamText 处理请求并返回数据流响应。
适用场景:基于 Next.js/React 构建聊天界面、流式文本生成、带工具调用的 AI 功能,以及从 AI SDK 4 升级到 5 的项目。
限制:资料仅提供代码模式示例,未说明版本兼容范围、依赖安装命令、收费或性能数据,这些暂未提供。