写给前端同学:Vercel AI SDK 让你专注于 AI 应用开发,标准化接入任意大模型!

437 阅读2分钟

我们都知道,大语言模型 (LLM) 本质上是一个能够大规模理解、创建和处理人类语言的高级程序。

大模型厂商前期使用海量数据进行预训练,使得这个模型能够根据用户输入预测下一个 Token。

image.png

AI SDK Core 提供一种统一标准化调用方式,将 LLM 集成到你的 AI 应用程序中,简化了大模型的使用,现在,你尽管专注于开发 AI 应用,而不用浪费时间在每次接入大模型的细枝末节上。

image.png

AISDK 封装了一些调用大模型并返回结构化内容或者流式数据的函数,给开发者直接使用。

AI SDK 基本用法

这是一个使用 AI SDK Core 进行 openai 模型调用的示例:

import { generateText } from "ai"
import { openai } from "@ai-sdk/openai"
const { text } = await generateText({
	model: openai("o3-mini"),
	prompt: "谁是最强大模型 ?"
})

当然,如果使用 Google 的模型,可以这样使用:

import { generateText } from "ai"
import { google } from "@ai-sdk/google"
const { text } = await generateText({
	model: google("models/gemini-2.0-flash-exp"),
	prompt: "谁是最强大模型 ?"
})

用 Anthropic 家的 Clude 系列模型可以这样:

import { generateText } from "ai"
import { anthropic } from "@ai-sdk/anthropic"
const { text } = await generateText({
	model: anthropic("claude-3-5-sonnet-latest"),
	prompt: "谁是最强大模型 ?"
})

解耦非常合理,自然,这里的 import { generateText } from "ai" 就是来自 AI SDK Core,只负责调用各家模型厂商的模型服务,以及切换对应的 model 并传入提示词 prompt

最后通过 generateText 异步函数得到模型返回的内容 text

模型供应商通过各家提供的 SDK 集成进来,互不干扰,非常清晰明了。

DeepSeek 思考模型

当然我们国产之光 DeepSeek 也是有对应 SDK 的:

import { generateText } from 'ai';
import { deepseek } from '@ai-sdk/deepseek';
const { reasoning, text } = await generateText({
  model: deepseek('deepseek-reasoner'),
  prompt: 'DeepSeek 国产之光,牛不牛?',
});

这里返回多了一个 reasoning 是代表思考的内容,因为咱们的 DeepSeek 深度思考就是一大亮点。

自定义的 Provider

当然如果在 NPM 包管理平台上找不到你想要的模型厂商的 SDK,你可以自己动手开发或者封装你的自定义模型 SDK:

import { generateText } from "ai"
import { dengjudeng } from "@ai-sdk/dengjudeng"
const { text } = await generateText({
	model: custom("dengjudeng-r2"),
	prompt: "dengjudeng r2 模型,牛不牛?"
})

比如你自己拿到了很多 A100 卡,照着 DeepSeep 公开的论文从头到尾训练了一个你自己的深度思考模型,叫做 dengjudeng-r2 然后,你自己封装一个叫做 @ai-sdk/dengjudeng 的 Nodejs SDK 包,发布到 NPM 包管理平台上后,全世界的开发者就能使用你训练好的大模型了。

我们下一篇会讲《如何封装你自己的 AI SDK Providers》

image.png

image.png