1. AI SDK(ai/@ai-sdk/openai/Vercel AI SDK)
请介绍 Vercel AI SDK 的整体架构与核心能力,说明 ai 包与 @ai-sdk/openai 等 Provider 包的分工,以及它如何统一不同 LLM 提供商的流式响应?
- ai 核心包与 provider 包的分层设计
- useChat/streamText 等流式 API 的抽象
- 框架无关与 React/Vue/Svelte 集成的取舍
Vercel AI SDK 采用"核心 + Provider"分层:核心包 ai 定义统一的模型抽象(generateText/streamText)与 UI 工具(useChat/useCompletion/useObject),各提供商通过 @ai-sdk/openai、@ai-sdk/anthropic、@ai-sdk/google 等适配层接入,前端业务代码不直接依赖厂商 SDK。服务端 streamText 返回可流式传输的响应(支持 SSE),客户端 useChat 接收文本增量并维护完整消息状态。其工程价值在于:模型切换只改 provider 配置、统一处理流式解析与错误格式、内置 tool call 与 structured output 支持,同时保持框架无关,可嵌入任何框架。
本题考察对 AI SDK 生态的分层认知:先讲清核心包与 provider 包的分工,再落到流式渲染与 hooks 的工程价值,最后点出"统一抽象、可替换 provider"这一核心卖点,避免只背 API 名。