Syncfusion Vue AI AssistView Component
The AI AssistView component provides a modern conversational interface for building AI-powered applications in Vue. It enables users to submit prompts and receive AI responses in a clean, chat-like interface with support for markdown rendering, custom suggestions, and seamless AI service integration.
Component Overview
The AI AssistView component provides:
- Prompt input area with customizable placeholder and initial text
- Conversation history with automatic scrolling to latest messages
- Suggestion chips for guided user interactions
- Custom avatars for users and AI responses
- Markdown rendering for formatted AI responses
- Event system for handling prompts and responses
- Template support for custom banner and layout designs
- Theme integration with Syncfusion's material, bootstrap, and tailwind themes
Navigation Guide
Choose the reference that matches your task:
Getting Started
📄 Read: references/getting-started.md
- Installation of
@syncfusion/ej2-vue-interactive-chat - Vue 2 project setup with Vue-CLI
- Registering the component
- Importing CSS themes
- Running your first AI AssistView application
Configuring Prompts & Responses
📄 Read: references/prompt-configuration.md
- Setting initial prompt text with
promptproperty - Customizing placeholder text with
promptPlaceholder - Managing conversation history with
promptscollection - Storing user queries and AI responses
- Clearing conversation history
Adding Suggestions & Guidance
📄 Read: references/prompt-suggestions.md
- Configuring suggestion chips with
promptSuggestions - Customizing suggestions header with
promptSuggestionsHeader - Updating suggestions dynamically based on context
- Creating task-specific suggestion flows
- Improving user experience with smart suggestions
Customizing Appearance
📄 Read: references/customizing-appearance.md
- Customizing user avatar icon with
promptIconCss - Changing AI response avatar with
responseIconCss - Showing/hiding clear button with
showClearButton - Styling the component with themes (material3, bootstrap, tailwind)
- Applying custom CSS classes
Handling Events
📄 Read: references/events.md
- All 7 component events (created, promptRequest, promptChanged, beforeAttachmentUpload, attachmentUploadSuccess, attachmentUploadFailure, attachmentRemoved, attachmentClick)
- Processing prompts asynchronously with
addPromptResponse - Implementing custom event handlers
- Managing event arguments and properties
- Async/await patterns for AI service calls
- Error handling in event callbacks
Using Templates
📄 Read: references/templates.md
- Creating custom banner templates
- Using template syntax
- Customizing template context and variables
- Styling template content with CSS
- Dynamic template rendering based on state
- Template best practices and patterns
Templates and Customization
📄 Read: references/templates-and-customization.md
- Custom footer templates with
footerTemplate - Customizing prompt items with
promptItemTemplate - Styling suggestion items with
promptSuggestionItemTemplate - Customizing response items with
responseItemTemplate - Configuring prompt toolbar with
promptToolbarSettings - Configuring response toolbar with
responseToolbarSettings - Setting up multiple views with
viewsproperty - Advanced template patterns and best practices
Chain of Thoughts & Reasoning Blocks
📄 Read: references/chain-of-thoughts.md
- Enabling thinking blocks with
AssistThinkingmodule - Visualizing AI reasoning process with thinking blocks
- Configuring stages with status indicators (completed, inprogress, failed)
- Adding inline context items with editable badges
- Customizing thinking blocks with templates
- Configuring timeline stage item templates
- Streaming reasoning blocks in real-time
Generative UI & Dynamic Components
📄 Read: references/generative-ui.md
- Registering custom tools with
registerToolUImethod - Creating interactive UI components within AI responses
- Configuring tool templates and handler functions
- Adding tool blocks to responses via
addPromptResponse - Integrating dynamic gauges, cards, and custom tools
- Configuring AI service for structured JSON responses
- Tool props and component interaction patterns
Rendering Markdown & Rich Content
📄 Read: references/markdown-and-responses.md
- Rendering markdown in AI responses
- Supported markdown syntax (bold, italic, headers, lists, code blocks)
- Streaming markdown content
- HTML response rendering
- Formatting tips for better readability
- Edge cases and troubleshooting
Advanced Features & AI Integration
📄 Read: references/advanced-features.md
- Enabling scroll-to-bottom indicator with
enableScrollToBottom - Configuring toolbar with
toolbarSettings - Advanced styling techniques
- RTL (Right-to-Left) support
- Performance optimization
- Handling long conversations
Connecting to AI Services
📄 Read: references/ai-integration.md
- Integrating with OpenAI, Gemini, Claude, or other AI APIs
- Managing API credentials securely
- Real-time vs mock response patterns
- Adding responses programmatically
- Error handling and retry logic
- Rate limiting and timeout management
Component Methods
📄 Read: references/methods.md
addPromptResponse()- Add AI responses to promptsexecutePrompt()- Programmatically trigger promptsscrollToBottom()- Scroll to latest message- Method signatures and parameters
- Streaming responses with isFinalUpdate
- Best practices and common patterns
Speech-to-Text Integration
📄 Read: references/speech-to-text.md
- Enabling voice input with
speechToTextSettings - Configuring microphone button and tooltips
- Language support and interim results
- Speech recognition events (onStart, onStop, transcriptChanged, onError)
- Browser compatibility and permissions
- Real-time transcript display
Text-to-Speech Conversion
📄 Read: references/text-to-speech.md
- Enabling audio playback with
e-assist-audiotoolbar item - Built-in Text-to-Speech functionality using Web Speech API
- Customizing speech with
textToSpeechSettings(language, pitch, rate, volume) - Configuring voice selection and language support
- Browser compatibility and voice availability
- Handling audio playback controls and status feedback
File Attachments
📄 Read: references/attachments.md
- Enable file upload with
enableAttachmentsproperty - Configure
attachmentSettings(saveUrl, removeUrl, file restrictions) - File validation (allowedFileTypes, maxFileSize, maximumCount)
- Attachment events (beforeUpload, uploadSuccess, uploadFailure, removed, click)
- Working with attached files in prompts
- Custom attachment templates (attachmentTemplate)
- Upload security and best practices
Multi-View Navigation
📄 Read: references/views-and-navigation.md
- Configure multiple views with
viewsproperty - Switch active view using
activeViewproperty - AssistViewModel structure and properties
- Custom view templates
- Dynamic view management
- View type: Assist vs Custom
Toolbar Configuration
📄 Read: references/toolbar-configuration.md
- Configure prompt toolbar with
promptToolbarSettings - Configure response toolbar with
responseToolbarSettings - Configure footer toolbar with
footerToolbarSettings - ToolbarItemModel properties (text, icon, align, tooltip, etc.)
- Toolbar positioning (Bottom, Inline)
- Common toolbar actions and patterns
Streaming Responses
📄 Read: references/streaming-responses.md
- Enable streaming with
enableStreamingproperty - Implement character-by-character or chunk-based streaming
- Progressive response rendering
- Integration with OpenAI and other APIs
- Stream error handling
- User-controlled streaming speed
Header, Locale & Sizing
📄 Read: references/header-locale-sizing.md
- Control header display with
showHeaderproperty - Internationalization with
localeproperty (13+ languages) - Responsive sizing with
heightandwidthproperties - State persistence with
enablePersistence - Responsive layout patterns
- Full screen and dialog implementations
Quick Start Example
Here's a minimal setup using Composition API:
<template>
<div id="container" style="height: 500px; width: 700px;">
<ejs-aiassistview
id="aiAssistView"
ref="aiassist"
prompt="How can I help you today?"
:prompt-suggestions="suggestions"
:prompt-request="onPromptRequest"
/>
</div>
</template>
<script setup>
import { AIAssistViewComponent as EjsAiassistview } from "@syncfusion/ej2-vue-interactive-chat";
import { ref } from "vue";
const aiassist = ref(null);
const suggestions = [
"What is AI?",
"How do I get started?",
"Tell me a joke"
];
const => {
setTimeout(() => {
const response = `You asked: "${args.prompt}".
To connect real AI, use the OpenAI API or similar service with your API key.`;
aiassist.value.addPromptResponse(response);
}, 1000);
};
</script>
<style>
@import "../node_modules/@syncfusion/ej2-material3-theme/styles/ai-assistview/index.css";
</style>
Common Patterns
Pattern 1: Basic AI Chatbot
Use the promptRequest event to handle user input and call an AI API:
const (args) => {
try {
const response = await fetch('https://api.openai.com/v1/completions', {
method: 'POST',
headers: { 'Authorization': `Bearer ${apiKey}` },
body: JSON.stringify({ prompt: args.prompt, max_tokens: 150 })
});
const data = await response.json();
aiassist.value.addPromptResponse(data.choices[0].text);
} catch (error) {
aiassist.value.addPromptResponse('Error: Could not process request');
}
};
Pattern 2: Pre-configured Suggestions
Create domain-specific suggestion flows to guide users:
const suggestions = [
"Show me productivity tips",
"How do I code in Vue?",
"Best practices for debugging"
];
Pattern 3: Conversation History
Access and manage the conversation history:
// Get all prompts and responses
const history = aiassist.value.ej2Instances.prompts;
// Clear conversation
aiassist.value.ej2Instances.prompts = [];