
# AI SDK UI

[AI SDK UI](/docs/ai-sdk-ui) is designed to help you build interactive chat, completion, and assistant applications with ease.
It is framework-agnostic toolkit, streamlining the integration of advanced AI functionalities into your applications.

AI SDK UI contains the following hooks:

<IndexCards
  cards={[
    {
      title: 'useChat',
      description:
        'Use a hook to interact with language models in a chat interface.',
      href: '/docs/reference/ai-sdk-ui/use-chat',
    },
    {
      title: 'useCompletion',
      description:
        'Use a hook to interact with language models in a completion interface.',
      href: '/docs/reference/ai-sdk-ui/use-completion',
    },
    {
      title: 'useObject',
      description: 'Use a hook for consuming a streamed JSON objects.',
      href: '/docs/reference/ai-sdk-ui/use-object',
    },
    {
      title: 'useAssistant',
      description: 'Use a hook to interact with OpenAI assistants.',
      href: '/docs/reference/ai-sdk-ui/use-assistant',
    },
    {
      title: 'convertToCoreMessages',
      description:
        'Convert useChat messages to CoreMessages for AI core functions.',
      href: '/docs/reference/ai-sdk-ui/convert-to-core-messages',
    },
    {
      title: 'appendResponseMessages',
      description:
        'Append CoreMessage[] from an AI response to an existing array of UI messages.',
      href: '/docs/reference/ai-sdk-ui/append-response-messages',
    },
    {
      title: 'appendClientMessage',
      description:
        'Append a client message to an existing array of UI messages.',
      href: '/docs/reference/ai-sdk-ui/append-client-message',
    },
    {
      title: 'createDataStream',
      description:
        'Create a data stream to stream additional data to the client.',
      href: '/docs/reference/ai-sdk-ui/create-data-stream',
    },
    {
      title: 'createDataStreamResponse',
      description:
        'Create a response object to stream additional data to the client.',
      href: '/docs/reference/ai-sdk-ui/create-data-stream-response',
    },
    {
      title: 'pipeDataStreamToResponse',
      description: 'Pipe a data stream to a Node.js ServerResponse object.',
      href: '/docs/reference/ai-sdk-ui/pipe-data-stream-to-response',
    },
    {
      title: 'streamData',
      description:
        'Stream additional data to the client along with generations.',
      href: '/docs/reference/ai-sdk-ui/stream-data',
    },
  ]}
/>

It also contains the following helper functions:

<IndexCards
  cards={[
    {
      title: 'AssistantResponse',
      description: 'Streaming helper for assistant responses.',
      href: '/docs/reference/ai-sdk-ui/assistant-response',
    },
  ]}
/>

## UI Framework Support

AI SDK UI supports the following frameworks: [React](https://react.dev/), [Svelte](https://svelte.dev/), [Vue.js](https://vuejs.org/), and [SolidJS](https://www.solidjs.com/) (deprecated).
Here is a comparison of the supported functions across these frameworks:

| Function                                                  | React               | Svelte                               | Vue.js              | SolidJS (deprecated) |
| --------------------------------------------------------- | ------------------- | ------------------------------------ | ------------------- | -------------------- |
| [useChat](/docs/reference/ai-sdk-ui/use-chat)             | <Check size={18} /> | <Check size={18} /> Chat             | <Check size={18} /> | <Check size={18} />  |
| [useCompletion](/docs/reference/ai-sdk-ui/use-completion) | <Check size={18} /> | <Check size={18} /> Completion       | <Check size={18} /> | <Check size={18} />  |
| [useObject](/docs/reference/ai-sdk-ui/use-object)         | <Check size={18} /> | <Check size={18} /> StructuredObject | <Cross size={18} /> | <Check size={18} />  |
| [useAssistant](/docs/reference/ai-sdk-ui/use-assistant)   | <Check size={18} /> | <Cross size={18} />                  | <Check size={18} /> | <Check size={18} />  |

<Note>
  [Contributions](https://github.com/vercel/ai/blob/main/CONTRIBUTING.md) are
  welcome to implement missing features for non-React frameworks.
</Note>


## Navigation

- [AI SDK Core](/v4/docs/reference/ai-sdk-core)
  - [generateText](/v4/docs/reference/ai-sdk-core/generate-text)
  - [streamText](/v4/docs/reference/ai-sdk-core/stream-text)
  - [generateObject](/v4/docs/reference/ai-sdk-core/generate-object)
  - [streamObject](/v4/docs/reference/ai-sdk-core/stream-object)
  - [embed](/v4/docs/reference/ai-sdk-core/embed)
  - [embedMany](/v4/docs/reference/ai-sdk-core/embed-many)
  - [generateImage](/v4/docs/reference/ai-sdk-core/generate-image)
  - [transcribe](/v4/docs/reference/ai-sdk-core/transcribe)
  - [generateSpeech](/v4/docs/reference/ai-sdk-core/generate-speech)
  - [tool](/v4/docs/reference/ai-sdk-core/tool)
  - [experimental_createMCPClient](/v4/docs/reference/ai-sdk-core/create-mcp-client)
  - [Experimental_StdioMCPTransport](/v4/docs/reference/ai-sdk-core/mcp-stdio-transport)
  - [jsonSchema](/v4/docs/reference/ai-sdk-core/json-schema)
  - [zodSchema](/v4/docs/reference/ai-sdk-core/zod-schema)
  - [valibotSchema](/v4/docs/reference/ai-sdk-core/valibot-schema)
  - [CoreMessage](/v4/docs/reference/ai-sdk-core/core-message)
  - [createProviderRegistry](/v4/docs/reference/ai-sdk-core/provider-registry)
  - [customProvider](/v4/docs/reference/ai-sdk-core/custom-provider)
  - [cosineSimilarity](/v4/docs/reference/ai-sdk-core/cosine-similarity)
  - [wrapLanguageModel](/v4/docs/reference/ai-sdk-core/wrap-language-model)
  - [LanguageModelV1Middleware](/v4/docs/reference/ai-sdk-core/language-model-v1-middleware)
  - [extractReasoningMiddleware](/v4/docs/reference/ai-sdk-core/extract-reasoning-middleware)
  - [simulateStreamingMiddleware](/v4/docs/reference/ai-sdk-core/simulate-streaming-middleware)
  - [defaultSettingsMiddleware](/v4/docs/reference/ai-sdk-core/default-settings-middleware)
  - [simulateReadableStream](/v4/docs/reference/ai-sdk-core/simulate-readable-stream)
  - [smoothStream](/v4/docs/reference/ai-sdk-core/smooth-stream)
  - [generateId](/v4/docs/reference/ai-sdk-core/generate-id)
  - [createIdGenerator](/v4/docs/reference/ai-sdk-core/create-id-generator)
- [AI SDK UI](/v4/docs/reference/ai-sdk-ui)
  - [useChat](/v4/docs/reference/ai-sdk-ui/use-chat)
  - [useCompletion](/v4/docs/reference/ai-sdk-ui/use-completion)
  - [useObject](/v4/docs/reference/ai-sdk-ui/use-object)
  - [useAssistant](/v4/docs/reference/ai-sdk-ui/use-assistant)
  - [AssistantResponse](/v4/docs/reference/ai-sdk-ui/assistant-response)
  - [convertToCoreMessages](/v4/docs/reference/ai-sdk-ui/convert-to-core-messages)
  - [appendResponseMessages](/v4/docs/reference/ai-sdk-ui/append-response-messages)
  - [appendClientMessage](/v4/docs/reference/ai-sdk-ui/append-client-message)
  - [createDataStream](/v4/docs/reference/ai-sdk-ui/create-data-stream)
  - [createDataStreamResponse](/v4/docs/reference/ai-sdk-ui/create-data-stream-response)
  - [pipeDataStreamToResponse](/v4/docs/reference/ai-sdk-ui/pipe-data-stream-to-response)
  - [StreamData](/v4/docs/reference/ai-sdk-ui/stream-data)
- [AI SDK RSC](/v4/docs/reference/ai-sdk-rsc)
  - [streamUI](/v4/docs/reference/ai-sdk-rsc/stream-ui)
  - [createAI](/v4/docs/reference/ai-sdk-rsc/create-ai)
  - [createStreamableUI](/v4/docs/reference/ai-sdk-rsc/create-streamable-ui)
  - [createStreamableValue](/v4/docs/reference/ai-sdk-rsc/create-streamable-value)
  - [readStreamableValue](/v4/docs/reference/ai-sdk-rsc/read-streamable-value)
  - [getAIState](/v4/docs/reference/ai-sdk-rsc/get-ai-state)
  - [getMutableAIState](/v4/docs/reference/ai-sdk-rsc/get-mutable-ai-state)
  - [useAIState](/v4/docs/reference/ai-sdk-rsc/use-ai-state)
  - [useActions](/v4/docs/reference/ai-sdk-rsc/use-actions)
  - [useUIState](/v4/docs/reference/ai-sdk-rsc/use-ui-state)
  - [useStreamableValue](/v4/docs/reference/ai-sdk-rsc/use-streamable-value)
  - [render (Removed)](/v4/docs/reference/ai-sdk-rsc/render)
- [Stream Helpers](/v4/docs/reference/stream-helpers)
  - [AIStream](/v4/docs/reference/stream-helpers/ai-stream)
  - [StreamingTextResponse](/v4/docs/reference/stream-helpers/streaming-text-response)
  - [streamToResponse](/v4/docs/reference/stream-helpers/stream-to-response)
  - [OpenAIStream](/v4/docs/reference/stream-helpers/openai-stream)
  - [AnthropicStream](/v4/docs/reference/stream-helpers/anthropic-stream)
  - [AWSBedrockStream](/v4/docs/reference/stream-helpers/aws-bedrock-stream)
  - [AWSBedrockAnthropicStream](/v4/docs/reference/stream-helpers/aws-bedrock-anthropic-stream)
  - [AWSBedrockAnthropicMessagesStream](/v4/docs/reference/stream-helpers/aws-bedrock-messages-stream)
  - [AWSBedrockCohereStream](/v4/docs/reference/stream-helpers/aws-bedrock-cohere-stream)
  - [AWSBedrockLlama2Stream](/v4/docs/reference/stream-helpers/aws-bedrock-llama-2-stream)
  - [CohereStream](/v4/docs/reference/stream-helpers/cohere-stream)
  - [GoogleGenerativeAIStream](/v4/docs/reference/stream-helpers/google-generative-ai-stream)
  - [HuggingFaceStream](/v4/docs/reference/stream-helpers/hugging-face-stream)
  - [LangChainAdapter](/v4/docs/reference/stream-helpers/langchain-adapter)
  - [LangChainStream](/v4/docs/reference/stream-helpers/langchain-stream)
  - [LlamaIndexAdapter](/v4/docs/reference/stream-helpers/llamaindex-adapter)
  - [MistralStream](/v4/docs/reference/stream-helpers/mistral-stream)
  - [ReplicateStream](/v4/docs/reference/stream-helpers/replicate-stream)
  - [InkeepStream](/v4/docs/reference/stream-helpers/inkeep-stream)
- [AI SDK Errors](/v4/docs/reference/ai-sdk-errors)
  - [AI_APICallError](/v4/docs/reference/ai-sdk-errors/ai-api-call-error)
  - [AI_DownloadError](/v4/docs/reference/ai-sdk-errors/ai-download-error)
  - [AI_EmptyResponseBodyError](/v4/docs/reference/ai-sdk-errors/ai-empty-response-body-error)
  - [AI_InvalidArgumentError](/v4/docs/reference/ai-sdk-errors/ai-invalid-argument-error)
  - [AI_InvalidDataContentError](/v4/docs/reference/ai-sdk-errors/ai-invalid-data-content-error)
  - [AI_InvalidDataContent](/v4/docs/reference/ai-sdk-errors/ai-invalid-data-content)
  - [AI_InvalidMessageRoleError](/v4/docs/reference/ai-sdk-errors/ai-invalid-message-role-error)
  - [AI_InvalidPromptError](/v4/docs/reference/ai-sdk-errors/ai-invalid-prompt-error)
  - [AI_InvalidResponseDataError](/v4/docs/reference/ai-sdk-errors/ai-invalid-response-data-error)
  - [AI_InvalidToolArgumentsError](/v4/docs/reference/ai-sdk-errors/ai-invalid-tool-arguments-error)
  - [AI_JSONParseError](/v4/docs/reference/ai-sdk-errors/ai-json-parse-error)
  - [AI_LoadAPIKeyError](/v4/docs/reference/ai-sdk-errors/ai-load-api-key-error)
  - [AI_LoadSettingError](/v4/docs/reference/ai-sdk-errors/ai-load-setting-error)
  - [AI_MessageConversionError](/v4/docs/reference/ai-sdk-errors/ai-message-conversion-error)
  - [AI_NoAudioGeneratedError](/v4/docs/reference/ai-sdk-errors/ai-no-audio-generated-error)
  - [AI_NoContentGeneratedError](/v4/docs/reference/ai-sdk-errors/ai-no-content-generated-error)
  - [AI_NoImageGeneratedError](/v4/docs/reference/ai-sdk-errors/ai-no-image-generated-error)
  - [AI_NoObjectGeneratedError](/v4/docs/reference/ai-sdk-errors/ai-no-object-generated-error)
  - [AI_NoOutputSpecifiedError](/v4/docs/reference/ai-sdk-errors/ai-no-output-specified-error)
  - [AI_NoSuchModelError](/v4/docs/reference/ai-sdk-errors/ai-no-such-model-error)
  - [AI_NoSuchProviderError](/v4/docs/reference/ai-sdk-errors/ai-no-such-provider-error)
  - [AI_NoSuchToolError](/v4/docs/reference/ai-sdk-errors/ai-no-such-tool-error)
  - [AI_NoTranscriptGeneratedError](/v4/docs/reference/ai-sdk-errors/ai-no-transcript-generated-error)
  - [AI_RetryError](/v4/docs/reference/ai-sdk-errors/ai-retry-error)
  - [AI_TooManyEmbeddingValuesForCallError](/v4/docs/reference/ai-sdk-errors/ai-too-many-embedding-values-for-call-error)
  - [ToolCallRepairError](/v4/docs/reference/ai-sdk-errors/ai-tool-call-repair-error)
  - [AI_ToolExecutionError](/v4/docs/reference/ai-sdk-errors/ai-tool-execution-error)
  - [AI_TypeValidationError](/v4/docs/reference/ai-sdk-errors/ai-type-validation-error)
  - [AI_UnsupportedFunctionalityError](/v4/docs/reference/ai-sdk-errors/ai-unsupported-functionality-error)


[Full Sitemap](/sitemap.md)
