开发框架教程(3):Vercel AI SDK —— 全栈工程师的最爱

如果你是做网页开发(Web Developer)出身,特别是用 **Next.js** 或 **React** 的,那你肯定会爱死这个库。

5分钟
2025-12-26
框架开发SDK开发框架教程(3):Vercel

开发框架教程(3):Vercel AI SDK —— 全栈工程师的最爱

1. 什么是 Vercel AI SDK?

如果你是做网页开发(Web Developer)出身,特别是用 Next.jsReact 的,那你肯定会爱死这个库。

LangChain 和 LlamaIndex 主要是 Python 界的霸主(虽然它们也有 JS 版,但 Python 版更强)。 而 Vercel AI SDK 是专门为 JavaScript/TypeScript 全栈开发设计的。

它的核心优势

  1. 流式输出 (Streaming) 极其简单:让文字像打字机一样一个字一个字蹦出来,在 Vercel AI SDK 里只需要两行代码。在 Python 里实现这个通常很麻烦。
  2. UI 组件化:它直接提供了 useChat 这样的 React Hook,帮你管理聊天记录、输入框状态、加载状态。你不需要自己写 useState 来存聊天列表。

2. 核心概念

useChat (前端 Hook)

这是最常用的 Hook。它帮你处理了所有繁琐的逻辑:

  • 自动发送请求到后端。
  • 自动把后端流回来的数据拼接到当前对话中。
  • 自动处理 Loading 状态。

AI SDK Core (后端/统一接口)

Vercel 推出了一个统一的 generateTextstreamText 函数。 无论你用 OpenAI, Anthropic, Google Gemini 还是 Mistral,代码完全一样!

// 以前你可能需要针对不同厂家写不同代码
// 现在:
import { openai } from '@ai-sdk/openai';
import { anthropic } from '@ai-sdk/anthropic';
import { generateText } from 'ai';

const { text } = await generateText({
  model: openai('gpt-4-turbo'), // 换成 anthropic('claude-3-sonnet') 只需要改这里
  prompt: '讲个笑话',
});

3. 实战:Next.js 聊天机器人

后端 (APP Router: app/api/chat/route.ts)

import { openai } from '@ai-sdk/openai';
import { streamText } from 'ai';

export async function POST(req: Request) {
  const { messages } = await req.json();

  const result = await streamText({
    model: openai('gpt-4-turbo'),
    messages,
  });

  return result.toDataStreamResponse(); // 自动处理流式响应头
}

前端 (React Component)

'use client';

import { useChat } from 'ai/react';

export default function Chat() {
  const { messages, input, handleInputChange, handleSubmit } = useChat();

  return (
    <div>
      {messages.map(m => (
        <div key={m.id}>
          {m.role === 'user' ? '我: ' : 'AI: '}
          {m.content}
        </div>
      ))}
 
      <form onSubmit={handleSubmit}>
        <input value={input} onChange={handleInputChange} />
        <button type="submit">发送</button>
      </form>
    </div>
  );
}

4. 总结

如果你要做一个 Web 版的 AI 应用,请毫不犹豫地选择 Vercel AI SDK。它可以帮你省去 90% 处理 HTTP 流、状态管理和 UI 更新的脏活累活。

AI导航助手

Powered by DeepSeek

你好!我是AI导航助手,由DeepSeek驱动。

我可以帮你: • 推荐适合你的AI模型 • 解答AI相关问题 • 直接带你跳转到相关页面

试试点击下方问题,或直接输入你的问题!

快捷提问:

哪个AI模型最好?有免费的AI吗?写代码用哪个?API怎么接入?

点击按钮可直接跳转到相关页面