换模型只改一行代码?Vercel AI SDK 让这事成了
为什么你的 AI 应用换模型要改三处代码?
做 AI 应用最烦的事是什么?好不容易接好了 OpenAI,结果甲方说「我们要用 Claude」——你一看,三处 import、两处 API 调用、一处 response parse,全要改。这种硬编码耦合,让换模型变成了一场体力劳动。
Vercel AI SDK 解决的就是这个问题。它是一个provider-agnostic 的 TypeScript 工具包,你用同一套 API 调用 OpenAI、Claude、Gemini、Llama……换模型只需要改一行字符串。
核心能力一览
- 统一 API:
generateText、streamText一个函数走天下,底层自动路由到对应 provider - 多 provider 支持:OpenAI、Anthropic、Google、Meta、Mistral 等 20+ 主流模型厂商
- AI Gateway:通过 Vercel AI Gateway 开箱即用,不需要自己配代理
- 结构化输出:集成 Zod schema validation,让模型输出直接就是 typed object,不用再手写正则解析
- Tool Calling / Agent:内置
ToolLoopAgent,几行代码搭起一个带工具调用的 AI Agent - 多框架 UI Hooks:React、Svelte、Vue、Angular 都有对应的 useChat hook
- 图像生成:集成了 OpenAI 的图像生成能力,直接在 Agent 里调用
最小化上手
安装:
npm install ai
调用不同模型,只需要换 model 字符串:
import { generateText } from 'ai';
const { text } = await generateText({
model: 'anthropic/claude-opus-4-6', // 换成 'openai/gpt-5.4' 一样跑
prompt: 'Give me a recipe for lasagna',
});
结构化输出也很干净:
import { generateText, Output } from 'ai';
import { z } from 'zod';
const { output } = await generateText({
model: 'openai/gpt-5.4',
output: Output.object({
schema: z.object({
recipe: z.object({
name: z.string(),
ingredients: z.array(z.object({
name: z.string(),
amount: z.string(),
})),
steps: z.array(z.string()),
}),
}),
}),
prompt: 'Generate a lasagna recipe.',
});
搭一个 Agent 也只需要几十行:
import { ToolLoopAgent } from 'ai';
const agent = new ToolLoopAgent({
model: 'openai/gpt-5.4',
system: 'You are a helpful coding assistant.',
tools: {
calculator: /* ... */,
fileReader: /* ... */,
},
});
谁在用?
这个库来自 Vercel + Next.js 核心团队,GitHub 26.1k stars,829 个 open issues,923 个 open PR——社区活跃度相当高。如果你用 Next.js、React Svelte 或 Vue 做 AI 应用,AI SDK 是目前最省心的集成方案。
唯一的门槛:需要 Node.js 22+。
GitHub:https://github.com/vercel/ai
GitHub: https://github.com/vercel/ai
评论区
0 条评论
登录后可评论。