# AI SDK v5 (Legacy)
URL: /docs/runtimes/ai-sdk/v5-legacy
Integrate Vercel AI SDK v5 with useChatRuntime for streaming chat.
AI SDK v5 is no longer supported. The `@assistant-ui/react-ai-sdk` package now requires AI SDK v6+.
Please upgrade to [AI SDK v6](/docs/runtimes/ai-sdk/v6).
Overview \[#overview]
This documentation is preserved for reference. For new projects, use [AI SDK v6](/docs/runtimes/ai-sdk/v6).
Getting Started \[#getting-started]
Create a Next.js project \[#create-a-nextjs-project]
```sh
npx create-next-app@latest my-app
cd my-app
```
Install AI SDK v5 and @assistant-ui/react \[#install-ai-sdk-v5-and-assistant-uireact]
```sh
npm install @assistant-ui/react @assistant-ui/react-ai-sdk@0.x ai@^5 @ai-sdk/openai@^1 zod
```
Setup a backend route under /api/chat \[#setup-a-backend-route-under-apichat]
`@/app/api/chat/route.ts`
```tsx
import { openai } from "@ai-sdk/openai";
import { streamText, tool } from "ai";
import type { Message } from "ai";
import { z } from "zod";
export const maxDuration = 30;
export async function POST(req: Request) {
const { messages }: { messages: Message[] } = await req.json();
const result = streamText({
model: openai("gpt-4o"),
messages,
tools: {
get_current_weather: tool({
description: "Get the current weather",
parameters: z.object({
city: z.string(),
}),
execute: async ({ city }) => {
return `The weather in ${city} is sunny`;
},
}),
},
});
return result.toDataStreamResponse();
}
```
Setup the frontend \[#setup-the-frontend]
`@/app/page.tsx`
```tsx
"use client";
import { Thread } from "@/components/assistant-ui/thread";
import { AssistantRuntimeProvider } from "@assistant-ui/react";
import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
export default function Home() {
const runtime = useChatRuntime({
api: "/api/chat",
});
return (
);
}
```
Key Differences from v6 \[#key-differences-from-v6]
| Feature | v5 | v6 |
| -------------------------- | ----------------------------- | ----------------------------------------- |
| **ai package** | `ai@^5` | `ai@^6` |
| **@ai-sdk/openai** | `@ai-sdk/openai@^1` | `@ai-sdk/openai@^3` |
| **Message type** | `Message` | `UIMessage` |
| **convertToModelMessages** | Sync | Async (`await`) |
| **Tool schema** | `parameters: z.object({...})` | `inputSchema: zodSchema(z.object({...}))` |
| **Response** | `toDataStreamResponse()` | `toUIMessageStreamResponse()` |
Migration to v6 \[#migration-to-v6]
See the [AI SDK v6 documentation](/docs/runtimes/ai-sdk/v6) for the latest integration guide.