Vercel AI SDK: Build AI Apps Easily (Even if You're a Beginner!)

Vaibhav KakdeVaibhav Kakde
7 min read

Building applications with Artificial Intelligence (AI) can feel a bit like stepping into a futuristic movie. You hear terms like "Large Language Models" (LLMs) and "streaming responses," and it might sound super complicated. But what if I told you there's a tool that makes it much, much easier, even if you're just starting out? That tool is the Vercel AI SDK.

In this blog post, we'll take a friendly stroll through what the Vercel AI SDK is, why it's a game-changer, and how you can use it to build your first AI-powered app without pulling your hair out.

What is the Vercel AI SDK? Think of it like a Universal Translator for AI.

Imagine you want to talk to someone who speaks a different language. You'd use a translator, right? The Vercel AI SDK works similarly for AI models. Different AI companies (like OpenAI, Google, Anthropic, etc.) have their own ways of communicating with their AI models. The Vercel AI SDK acts as a universal translator, providing a single, easy-to-understand way to talk to many different AI models.

This means you don't have to learn a new language for each AI model you want to use. You write your code once with the Vercel AI SDK, and it handles all the tricky parts of talking to various AI providers.

Why is it so awesome for beginners?

  1. Simplicity: It hides away a lot of the complex stuff. You don't need to be an AI expert to get started.

  2. Framework Friendly: If you're already familiar with web frameworks like React, Next.js, Vue, or Svelte, you'll feel right at home. It offers special tools (like "hooks" in React) that make building AI features super smooth.

  3. Streaming Magic: Ever seen those AI chatbots where the text appears character by character, just like someone typing? That's called "streaming." The Vercel AI SDK makes this incredibly easy to implement, giving your users a much better experience.

  4. Swap Models Easily: Want to try a different AI model later? No problem! With the Vercel AI SDK, it's often just a small change in your code to switch between providers.

Let's Get Our Hands Dirty: A Simple Example

To show you how easy it is, let's create a super basic example where we ask an AI a question and get a response.

First, you'll need a basic web project set up (like a Next.js project). If you don't have one, you can quickly create a new Next.js app:

Bash

npx create-next-app my-ai-app
cd my-ai-app

Now, let's install the Vercel AI SDK and an AI provider package (we'll use OpenAI for this example, but you can choose others like Google Generative AI).

Bash

npm install ai @ai-sdk/openai

You'll also need an API key from your chosen AI provider (e.g., OpenAI). Make sure to keep this key secret! You can store it in a .env.local file at the root of your project:

OPENAI_API_KEY=your_openai_api_key_here

Now, let's create a simple API route in your Next.js project (e.g., app/api/chat/route.ts if you're using the App Router, or pages/api/chat.ts for the Pages Router).

app/api/chat/route.ts (Next.js App Router example)

TypeScript

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

// This is important! Allow streaming responses up to 30 seconds
export const maxDuration = 30;

export async function POST(req: Request) {
  // Get the messages from the user's request
  const { messages } = await req.json();

  // Use the Vercel AI SDK to stream text from OpenAI
  const result = await streamText({
    model: openai('gpt-4o'), // We're using OpenAI's gpt-4o model
    messages, // Pass the conversation history
  });

  // Send the streaming response back to the user
  return result.toAIStreamResponse();
}

Explanation of the code:

  • import { streamText } from 'ai';: This line brings in the streamText function from the Vercel AI SDK. This function is designed to handle those cool, real-time streaming responses.

  • import { openai } from '@ai-sdk/openai';: This imports the OpenAI provider from the AI SDK, allowing us to easily connect to OpenAI's models.

  • export const maxDuration = 30;: This is a Vercel-specific setting that tells your serverless function to stay alive for up to 30 seconds to handle longer streaming responses.

  • const { messages } = await req.json();: We're expecting a list of messages from the user's request. This is how we keep track of the conversation.

  • model: openai('gpt-4o'): Here, we tell the SDK which AI model we want to use. We're picking gpt-4o from OpenAI.

  • messages: We pass the entire conversation history to the AI so it can understand the context.

  • return result.toAIStreamResponse();: This is the magic part! The Vercel AI SDK takes the streaming response from OpenAI and formats it perfectly for your web application.

Building the Frontend (React Component)

Now, let's create a simple React component that uses this API route to chat with the AI.

app/page.tsx (Next.js App Router example)

TypeScript

'use client'; // This tells Next.js this is a client-side component

import { useChat } from 'ai/react'; // The special hook for chat apps

export default function Chat() {
  // useChat gives us everything we need for a chat interface
  const { messages, input, handleInputChange, handleSubmit } = useChat();

  return (
    <div className="flex flex-col w-full max-w-md py-24 mx-auto stretch">
      {/* Display all the messages */}
      {messages.map((m) => (
        <div key={m.id} className="whitespace-pre-wrap">
          <strong>{m.role === 'user' ? 'You: ' : 'AI: '}</strong>
          {m.content}
        </div>
      ))}

      {/* The chat input form */}
      <form onSubmit={handleSubmit} className="fixed bottom-0 w-full max-w-md p-2 flex">
        <input
          className="flex-grow border border-gray-300 rounded shadow-xl p-2"
          value={input}
          placeholder="Say something to the AI..."
          onChange={handleInputChange}
        />
        <button type="submit" className="ml-2 px-4 py-2 bg-blue-500 text-white rounded shadow-xl">
          Send
        </button>
      </form>
    </div>
  );
}

Explanation of the frontend code:

  • 'use client';: In Next.js App Router, this line is crucial to mark this component as something that runs in the user's browser, not on the server.

  • import { useChat } from 'ai/react';: This is one of the most powerful features of the Vercel AI SDK for UI development! The useChat hook handles almost everything for you:

    • messages: An array that holds all the messages in the conversation (both yours and the AI's).

    • input: The current text in the input box.

    • handleInputChange: A function to update input as the user types.

    • handleSubmit: A function to send the message to your API route and handle the AI's response (including streaming!).

  • The messages.map part simply loops through the conversation and displays each message, showing who said what.

  • The <form> and <input> are standard HTML elements, but useChat makes them "AI-aware" by linking them to input, handleInputChange, and handleSubmit.

Running Your First AI App!

  1. Make sure you have your .env.local file with your OPENAI_API_KEY.

  2. Start your development server: Bash

     npm run dev
    
  3. Open your browser to http://localhost:3000.

You should see a simple chat interface! Type something in the input box, press Enter or click "Send," and watch as the AI responds, often streaming its answer character by character.

Beyond Basic Chat: What else can you do?

The Vercel AI SDK is incredibly versatile. Here are just a few other cool things you can do:

  • Generate Structured Data: Instead of just text, you can tell the AI to give you information in a specific format, like a JSON object. This is super useful for things like generating recipes, product descriptions, or extracting information from text.

  • Tool Calling: Imagine your AI could "use" external tools, like looking up the weather or searching a database. The AI SDK supports this, allowing your AI to perform actions in the real world.

  • Generative UI: The SDK is also moving towards generating actual user interface components based on AI responses, opening up even more exciting possibilities.

In Conclusion: Your AI Journey Starts Here

The Vercel AI SDK is a fantastic starting point for anyone looking to dip their toes into building AI-powered applications. It simplifies complex processes, handles streaming like a pro, and lets you focus on building amazing user experiences rather than wrestling with different AI APIs.

So, go ahead, try it out! The world of AI is waiting, and with the Vercel AI SDK, you're well-equipped to start building your own intelligent applications. Happy coding!

0
Subscribe to my newsletter

Read articles from Vaibhav Kakde directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Vaibhav Kakde
Vaibhav Kakde