Vercel AI SDK
Build AI-powered applications with React, Svelte, Vue, and Solid
README
Vercel AI SDK
The Vercel AI SDK is a library for building AI-powered streaming text and chat UIs.
Features
SWR -powered React, Svelte, Vue and Solid helpers for streaming text responses and building chat and completion UIs
First-class support for LangChain and OpenAI , Anthropic , Cohere , Hugging Face , and Replicate
Node.js, Serverless, and Edge Runtime support
Callbacks for saving completed streaming responses to a database (in the same request)
Installation
- ``` shell
- pnpm install ai
- ```
View the full documentation and examples on sdk.vercel.ai/docs
Example: An AI Chatbot with Next.js and OpenAI
With the Vercel AI SDK, you can build a ChatGPT-like app in just a few lines of code:
- ``` tsx
- // ./app/api/chat/route.js
- import OpenAI from 'openai'
- import { OpenAIStream, StreamingTextResponse } from 'ai'
- const openai = new OpenAI({
- apiKey: process.env.OPENAI_API_KEY
- })
- export const runtime = 'edge'
- export async function POST(req) {
- const { messages } = await req.json()
- const response = await openai.chat.completions.create({
- model: 'gpt-4',
- stream: true,
- messages
- })
- const stream = OpenAIStream(response)
- return new StreamingTextResponse(stream)
- }
- ```
- ``` tsx
- // ./app/page.js
- '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}: {m.content}
- </div>
- ))}
- <form onSubmit={handleSubmit}>
- <input
- value={input}
- placeholder="Say something..."
- onChange={handleInputChange}
- />
- </form>
- </div>
- )
- }
- ```
View the full documentation and examples on sdk.vercel.ai/docs .
Authors
This library is created by Vercel and Next.js team members, with contributions from:
Jared Palmer (@jaredpalmer ) -Vercel
Shu Ding (@shuding_ ) -Vercel
Max Leiter (@max_leiter ) -Vercel
Malte Ubl (@cramforce ) -Vercel
Justin Ridgewell (@jridgewell ) -Vercel
Contributors