syncfusion-react-ai-assistview
Implement the Syncfusion React AI AssistView component. Use this skill to handle AI-powered conversational interfaces, AssistView setup, conversation flow, speech input or output, file attachments, UI customization, state management, chain of thoughts reasoning visualization, generative UI with dyna
By syncfusion · 615 installs
npx skills add syncfusion/react-ui-components-skills --skill syncfusion-react-ai-assistview
Source repository · Upstream listing
Syncfusion React AI AssistView Component
Component Overview
The Syncfusion React AI AssistView component is a comprehensive interactive chat component designed for building AI powered conversational interfaces. It provides:
Core Capabilities
Prompt Response Management : Manage conversation history with automatic data collection
Real time Streaming : Stream AI responses character by character for live typing effects
Chain of Thoughts : Visualize AI reasoning process through thinking blocks with multi stage workflow support
Template System : Customize every UI element (banners, prompt items, responses, suggestions, footer)
Multi View Support : Switch between conversation assist view and custom content views
Voice Integration : Built in Speech to Text (voice input) and Text to Speech (voice output)
File Attachments : Upload and include files with prompts
Advanced Toolbars : Configurable toolbars for header, footer, responses, and prompts
AI Service Integration : Direct integration with OpenAI, Azure OpenAI, and other AI services
Event Driven Architecture : Hooks for prompt submission, changes, and component lifecycle
Key Features
Markdown Support : Render AI responses as formatted HTML via markdown parsing
Conversation History : Automatic tracking of all prompts and responses
Suggestion System : Display helpful prompt suggestions to guide users
Avatar Customization : Customize user and AI icons/avatars
Scroll Management : Auto scroll or manual scroll to bottom button
Clear Functionality : Clear current prompt or entire conversation
Regenerate Responses : Request alternative AI responses for existing prompts without resubmitting queries
Responsive Design : Works on desktop and mobile with responsive layouts
Documentation and Navigation Guide
Getting Started
📄 Read: [references/getting started.md](references/getting started.md)
Install @syncfusion/ej2 react interactive chat package
Add CSS theme imports
Create basic component initialization
Render component to DOM
First working functional component example
Configuration Essentials
📄 Read: [references/configuration essentials.md](references/configuration essentials.md)
Set initial prompt text and placeholders
Configure prompt suggestions and suggestion headers
Customize user and AI avatar icons
Control clear button visibility
Enable/disable scroll to bottom functionality
Manage component instance via refs
Set component dimensions (height and width)
Apply custom CSS classes for styling
Control header visibility
Configure globalization (locale, RTL support)
Enable state persistence across sessions
Conversation Management
📄 Read: [references/conversation management.md](references/conversation management.md)
Initialize with pre configured conversation data
Add responses (string or object format)
Access and manage conversation history
Work with PromptModel data structure
Render markdown in responses
Persist and restore conversations
Events and Interactions
📄 Read: [references/events and interactions.md](references/events and interactions.md)
Handle component lifecycle (created event)
Respond to prompt submissions (promptRequest event)
Track prompt text changes (promptChanged event)
Access detailed event arguments (PromptChangedEventArgs, PromptRequestEventArgs)
Cancel prompt submissions programmatically
Handle stop responding events for long operations
Modify suggestions and toolbar items dynamically
Implement event driven workflows
Integrate with AI services via event handlers
Toolbar Customization
📄 Read: [references/toolbar customization.md](references/toolbar customization.md)
Configure four toolbar types (header, footer, response, prompt)
Add custom toolbar items
Control toolbar positioning (Inline vs Bottom)
Customize toolbar icons
Handle item click events
Configure all ToolbarItemModel properties (align, cssClass, disabled, tabIndex, template, type, visible)
Create custom toolbar item templates
Control item visibility and enabled state dynamically
Set tab order for keyboard navigation
Manage attachment button behavior
Enable regenerate responses functionality for multiple AI generated responses
Navigate between regenerated responses with previous/next buttons
File Attachments
📄 Read: [references/file attachments.md](references/file attachments.md)
Enable file attachment support
Configure upload endpoints (saveUrl, removeUrl)
Restrict file types (allowedFileType)
Set file size limits (maxFileSize)
Limit number of attachments (maximumCount)
Access attached files via attachedFiles array (FileInfo interface)
Handle attachment lifecycle events (beforeAttachmentUpload, attachmentUploadSuccess, attachmentUploadFailure, attachmentRemoved)
Validate files before upload
Initialize prompts with pre attached files
Handle server side file processing
Custom attachment templates (attachmentTemplate)
Custom Views
📄 Read: [references/custom views.md](references/custom views.md)
Create multiple views (Assist and Custom types)
Set view names and icons
Define view specific templates
Configure activeView property to set initial view
Switch between views programmatically
Persist active view across sessions
Conditionally set initial view based on user role or state
Display side by side content panels
Use cases for multi view layouts
Templating System
📄 Read: [references/templating system.md](references/templating system.md)
Customize banner templates (welcome content)
Create prompt item templates (user message display)
Design response item templates (AI response display)
Build suggestion item templates
Create custom footer templates
Access template context data
AI Service Integration
📄 Read: [references/ai integration setup.md](references/ai integration setup.md)
Integrate with Azure OpenAI, OpenAI, Gemini, Claude
Configure API credentials and authentication
Handle real time prompt processing
Stream responses for live typing effects
Parse markdown responses with marked library
Error handling and rate limiting
Security considerations for API keys
Generative UI
📄 Read: [references/generative ui.md](references/generative ui.md)
Register custom tools with registerToolUI() method
Configure tool templates and handlers for rendering
Add interactive elements (charts, cards, custom tools) via blocks property
Render multiple tools within single AI response
Configure AI system prompts for structured JSON generation
AI service integration with generative UI blocks
Speech Capabilities
📄 Read: [references/speech capabilities.md](references/speech capabilities.md)
Enable Speech to Text (voice input)
Configure speech recognition language
Handle interim transcripts while speaking
Implement Text to Speech (voice output) via Web Speech API
Convert AI responses to spoken audio
Customize TTS with textToSpeechSettings (language, speechPitch, speechRate, volume, voice)
Customize button labels and icons
Handle speech events (start, stop, transcript, error)
Browser compatibility notes
Chain of Thoughts
📄 Read: [references/chain of thoughts.md](references/chain of thoughts.md)
Visualize AI reasoning process with thinking blocks
Configure thinking blocks with stages and status updates
Add multi stage reasoning workflows (completed, inprogress, failed)
Customize thinking block templates
Add inline context items with badges and tooltips
Handle editableContextClicked events for interactive context
Configure stage level item templates
Stream thinking blocks for real time reasoning visualization
Methods and APIs
📄 Read: [references/methods and apis.md](references/methods and apis.md)
Use addPromptResponse() method
Execute prompts dynamically with executePrompt()
Scroll to bottom programmatically
Access component instance via refs
Manage component state
Common patterns and gotchas
Quick Start Example
Common Patterns
Pattern 1: Basic Chat with Suggestions
Create a simple conversational interface with predefined suggestions:
Enable prompt suggestions to guide user interactions
Handle promptRequest event with simple responses
Display conversation history automatically
Pattern 2: AI Service Integration
Connect to real AI services for intelligent responses:
Use promptRequest event to capture user input
Call AI API with prompt text
Stream response character by character for live effect
Parse markdown responses for formatted output
Pattern 3: Multi View Dashboard
Combine chat with supporting content:
Create Assist view for conversation
Add Custom view for settings/sidebar
Switch activeView based on user interaction
Share data between views
Pattern 4: Voice Enabled Chat
Enable hands free interaction with speech:
Enable speechToTextSettings to capture voice
Configure Text to Speech for response audio
Use toolbar for voice control buttons
Handle speech events for status feedback
Pattern 5: File Attached Prompts
Support file uploads with prompts:
Enable attachments with enableAttachments property
Configure attachment endpoints and file restrictions
Include file data in prompt context
Send files to backend API
Pattern 6: Chain of Thoughts Reasoning
Visualize AI's step by step reasoning process:
Inject AssistThinking module for thinking block support
Create thinking blocks with multiple reasoning stages
Use status updates (completed, inprogress, failed) for real time progress
Stream thinking blocks alongside text responses
Add context items to highlight referenced tools or files
Customize block and stage templates for branded styling
Key Props & Configuration
Essential Props
promptRequest : Event handler when user submits prompt
prompt : Initial/default text in prompt input
promptPlaceholder : Placeholder text for input area
promptSuggestions : Array of suggested prompts
prompts : Pre configured conversation data
Customization Props
promptIconCss : CSS class for user avatar
responseIconCss : CSS class for AI avatar
showClearButton : Show/hide clear button (default: false)
showHeader : Show/hide component header (default: true)
enableScrollToBottom : Show scroll to bottom button (default: true)
height : Component height (string number, default: '100%')
width : Component width (string number, default: '100%')
cssClass : Custom CSS classes for styling
activeView : Currently displayed view index (number, default: 0)
Template Props
bannerTemplate : Welcome banner content
promptItemTemplate : User message display
responseItemTemplate : AI response display
promptSuggestionItemTemplate : Suggestion styling
footerTemplate : Custom prompt input area
Advanced Props
enableAttachments : Enable file uploads (default: false)
attachmentSettings : File upload configuration
speechToTextSettings : Voice input configuration
textToSpeechSettings : Text to speech configuration
toolbarSettings : Header toolbar configuration
footerToolbarSettings : Footer toolbar configuration
responseToolbarSettings : Response action toolbar
promptToolbarSettings : Prompt toolbar configuration
blockTemplate : Custom template for thinking blocks and other response blocks
itemTemplate : Custom template for individual stages within thinking blocks
locale : Localization/globalization setting (default: 'en US')
enableRtl : Enable right to left rendering (default: false)
enablePersistence : Enable state persistence (default: false)
Generative UI Props
blocks : Array of response blocks (TextBlock, ToolBlock, ThinkingBlock) to render dynamic UI elements within responses
registerToolUI() : Public method to