# AI SDK v4 (Legacy) URL: /docs/runtimes/ai-sdk/v4-legacy Legacy integration for Vercel AI SDK v4 using data stream runtime. *** title: AI SDK v4 (Legacy) description: Legacy integration for Vercel AI SDK v4 using data stream runtime. ------------------------------------------------------------------------------- import { InstallCommand } from "@/components/docs/fumadocs/install/install-command"; ## Overview If you're using AI SDK v4 (legacy), you can integrate with assistant-ui using the `@assistant-ui/react-data-stream` package and its `useDataStreamRuntime` hook. This provides a compatible runtime that works with AI SDK v4's streaming responses. AI SDK v4 is now considered legacy. We recommend upgrading to [AI SDK v5](/docs/runtimes/ai-sdk/use-chat) for improved features and better TypeScript support. This documentation is provided for projects that haven't migrated yet. ## Getting Started ### Option 1: Using @assistant-ui/react-data-stream (Recommended) ### Install the required packages Install `@assistant-ui/react-data-stream` alongside assistant-ui and AI SDK v4: ### Setup your backend route Create an API route that uses AI SDK v4's streaming capabilities: `@/app/api/chat/route.ts` ```tsx import { streamText } from "ai"; import { openai } from "@ai-sdk/openai"; export async function POST(req: Request) { const { messages } = await req.json(); const result = streamText({ model: openai("gpt-4"), messages, }); return result.toDataStreamResponse(); } ``` ### Use `useDataStreamRuntime` in your component `@/app/page.tsx` ```tsx "use client"; import { Thread } from "@assistant-ui/react"; import { AssistantRuntimeProvider } from "@assistant-ui/react"; import { useDataStreamRuntime } from "@assistant-ui/react-data-stream"; export default function Home() { const runtime = useDataStreamRuntime({ api: "/api/chat", }); return (
); } ```
### Option 2: Using @assistant-ui/react-ai-sdk v0.1.10 (Legacy) Alternatively, you can use the older version of the AI SDK integration package, though this version is no longer actively maintained: Version 0.1.10 of `@assistant-ui/react-ai-sdk` is no longer actively maintained. We recommend using the `@assistant-ui/react-data-stream` approach or upgrading to AI SDK v5 for continued support. With this legacy version, you would use the `useVercelUseChatRuntime` hook: ```tsx "use client"; import { useChat } from "ai/react"; import { Thread } from "@assistant-ui/react"; import { AssistantRuntimeProvider } from "@assistant-ui/react"; import { useVercelUseChatRuntime } from "@assistant-ui/react-ai-sdk"; export default function Home() { const chat = useChat({ api: "/api/chat", }); const runtime = useVercelUseChatRuntime(chat); return (
); } ``` ## API Reference ### `useDataStreamRuntime` The `useDataStreamRuntime` hook creates a runtime compatible with assistant-ui from AI SDK v4's streaming responses. ```tsx import { useDataStreamRuntime } from "@assistant-ui/react-data-stream"; const runtime = useDataStreamRuntime({ api: "/api/chat", // Options similar to AI SDK v4's useChat initialMessages: [], onFinish: (message) => { console.log("Message completed:", message); }, onError: (error) => { console.error("Chat error:", error); }, }); ``` #### Options The `useDataStreamRuntime` hook accepts options similar to AI SDK v4's `useChat` hook: * **`api`**: The API endpoint for chat requests (required) * **`initialMessages`**: Initial messages to populate the chat * **`onFinish`**: Callback when a message completes streaming * **`onError`**: Callback for handling errors * **`headers`**: Additional headers to send with requests * **`body`**: Additional body parameters to send with requests The `useDataStreamRuntime` API is designed to be familiar to developers already using AI SDK v4's `useChat` hook, making migration straightforward. ## Migration to AI SDK v5 When you're ready to upgrade to AI SDK v5: 1. Replace `@assistant-ui/react-data-stream` with `@assistant-ui/react-ai-sdk` 2. Update your backend to use AI SDK v5's `streamText` API 3. Switch from `useDataStreamRuntime` to `useChatRuntime` 4. Take advantage of improved TypeScript support and automatic system/tool forwarding See our [AI SDK v5 documentation](/docs/runtimes/ai-sdk/use-chat) for the complete migration guide. ## Example For a working example with AI SDK v4, you can adapt the patterns from our [AI SDK examples](https://github.com/assistant-ui/assistant-ui/tree/main/examples) using the `@assistant-ui/react-data-stream` package instead of the v5 integration.