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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
import { AIAssistViewComponent, PromptRequestEventArgs } from '@syncfusion/ej2-react-interactive-chat';
import * as React from 'react';
import * as ReactDOM from "react-dom";
function App() {
const assistInstance = React.useRef<AIAssistViewComponent>(null);
const PromptRequestEventArgs) => {
setTimeout(() => {
let defaultResponse = 'For real-time AI processing, connect to your preferred service (OpenAI, Azure OpenAI, etc.).';
assistInstance.current.addPromptResponse(defaultResponse);
}, 1000);
};
return (
<AIAssistViewComponent
id="aiAssistView"
ref={assistInstance}
promptRequest={onPromptRequest}
prompt={'Welcome! How can I help?'}
promptSuggestions={['Ask about features', 'Get started guide']}
/>
);
}
ReactDOM.render(<App />, document.getElementById('container'));
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 register custom tool templates for rendering interactive components (charts, cards, custom tools) within AI responses
Event Props
created: Component lifecycle event
promptRequest: Prompt submission event
promptChanged: Prompt text change event
stopRespondingClick: Stop button click event
beforeAttachmentUpload: Before file upload event
attachmentUploadSuccess: File upload success event
attachmentUploadFailure: File upload failure event
attachmentRemoved: File removal event
editableContextClicked: Fires when user clicks an inline context item in thinking blocks
Common Use Cases
Chat Bot with AI Integration
Build a customer service chatbot connected to OpenAI or Azure services:
- Set up component with suggestions
- Handle promptRequest to send to AI API
- Stream responses for real-time feedback
- Use templates for branded appearance
Voice-Enabled Assistant
Create hands-free voice interaction:
- Enable speechToTextSettings
- Configure Text-to-Speech toolbar button
- Handle speech events for status
- Provide visual feedback during voice capture
File Analysis Chat
Allow users to upload and discuss files:
- Enable attachments
- Configure file restrictions (type, size, count)
- Send files with prompts to backend
- Display file information in conversation
Multi-Feature Dashboard
Combine chat with settings and content:
- Create multiple views (Assist + Custom)
- Use templates for custom view content
- Implement view switching logic
- Share conversation state between views
Thinking-Enabled Reasoning Assistant
Showcase AI's reasoning process for complex tasks:
- Inject AssistThinking module for thinking block support
- Configure thinking blocks with multiple stages
- Stream blocks with status updates (inprogress → completed)
- Add context items (tools, files, search results) within stages
- Customize block templates for transparent reasoning display
- Handle editableContextClicked for interactive exploration
Generative UI with Dynamic Interactive Tools
Render dynamic interactive components and custom tools within AI responses:
- Register custom tools (charts, cards, forms) using registerToolUI()
- Configure tool templates for responsive UI rendering
- Define blocks array with TextBlock and ToolBlock combinations
- Configure AI system prompt for structured JSON generation
- Send tool blocks within addPromptResponse() calls
- Create rich, interactive experiences with AI-generated UI elements
1---
2name: syncfusion-react-ai-assistview
3description: 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 dynamic tools, and AI service integration such as OpenAI or Azure AI in React applications.
4metadata:
5 author: "Syncfusion Inc"
6 version: "34.1.29"
7---
8
9# Syncfusion React AI AssistView Component
10
11## Component Overview
12
13The **Syncfusion React AI AssistView** component is a comprehensive interactive chat component designed for building AI-powered conversational interfaces. It provides:
14
15### Core Capabilities
16- **Prompt-Response Management**: Manage conversation history with automatic data collection
17- **Real-time Streaming**: Stream AI responses character-by-character for live typing effects
18- **Chain of Thoughts**: Visualize AI reasoning process through thinking blocks with multi-stage workflow support
19- **Template System**: Customize every UI element (banners, prompt items, responses, suggestions, footer)
20- **Multi-View Support**: Switch between conversation assist view and custom content views
21- **Voice Integration**: Built-in Speech-to-Text (voice input) and Text-to-Speech (voice output)
22- **File Attachments**: Upload and include files with prompts
23- **Advanced Toolbars**: Configurable toolbars for header, footer, responses, and prompts
24- **AI Service Integration**: Direct integration with OpenAI, Azure OpenAI, and other AI services
25- **Event-Driven Architecture**: Hooks for prompt submission, changes, and component lifecycle
26
27### Key Features
28- **Markdown Support**: Render AI responses as formatted HTML via markdown parsing
29- **Conversation History**: Automatic tracking of all prompts and responses
30- **Suggestion System**: Display helpful prompt suggestions to guide users
31- **Avatar Customization**: Customize user and AI icons/avatars
32- **Scroll Management**: Auto-scroll or manual scroll-to-bottom button
33- **Clear Functionality**: Clear current prompt or entire conversation
34- **Regenerate Responses**: Request alternative AI responses for existing prompts without resubmitting queries
35- **Responsive Design**: Works on desktop and mobile with responsive layouts
36
37## Documentation and Navigation Guide
38
39### Getting Started
40📄 **Read:** [references/getting-started.md](references/getting-started.md)
41- Install @syncfusion/ej2-react-interactive-chat package
42- Add CSS theme imports
43- Create basic component initialization
44- Render component to DOM
45- First working functional component example
46
47### Configuration Essentials
48📄 **Read:** [references/configuration-essentials.md](references/configuration-essentials.md)
49- Set initial prompt text and placeholders
50- Configure prompt suggestions and suggestion headers
51- Customize user and AI avatar icons
52- Control clear button visibility
53- Enable/disable scroll-to-bottom functionality
54- Manage component instance via refs
55- **Set component dimensions (height and width)**
56- **Apply custom CSS classes for styling**
57- **Control header visibility**
58- **Configure globalization (locale, RTL support)**
59- **Enable state persistence across sessions**
60
61### Conversation Management
62📄 **Read:** [references/conversation-management.md](references/conversation-management.md)
63- Initialize with pre-configured conversation data
64- Add responses (string or object format)
65- Access and manage conversation history
66- Work with PromptModel data structure
67- Render markdown in responses
68- Persist and restore conversations
69
70### Events and Interactions
71📄 **Read:** [references/events-and-interactions.md](references/events-and-interactions.md)
72- Handle component lifecycle (created event)
73- Respond to prompt submissions (promptRequest event)
74- Track prompt text changes (promptChanged event)
75- **Access detailed event arguments (PromptChangedEventArgs, PromptRequestEventArgs)**
76- **Cancel prompt submissions programmatically**
77- **Handle stop responding events for long operations**
78- **Modify suggestions and toolbar items dynamically**
79- Implement event-driven workflows
80- Integrate with AI services via event handlers
81
82### Toolbar Customization
83📄 **Read:** [references/toolbar-customization.md](references/toolbar-customization.md)
84- Configure four toolbar types (header, footer, response, prompt)
85- Add custom toolbar items
86- Control toolbar positioning (Inline vs Bottom)
87- Customize toolbar icons
88- Handle item click events
89- **Configure all ToolbarItemModel properties (align, cssClass, disabled, tabIndex, template, type, visible)**
90- **Create custom toolbar item templates**
91- **Control item visibility and enabled state dynamically**
92- **Set tab order for keyboard navigation**
93- Manage attachment button behavior
94- **Enable regenerate responses functionality for multiple AI-generated responses**
95- **Navigate between regenerated responses with previous/next buttons**
96
97### File Attachments
98📄 **Read:** [references/file-attachments.md](references/file-attachments.md)
99- Enable file attachment support
100- Configure upload endpoints (saveUrl, removeUrl)
101- Restrict file types (allowedFileType)
102- Set file size limits (maxFileSize)
103- Limit number of attachments (maximumCount)
104- **Access attached files via attachedFiles array (FileInfo interface)**
105- **Handle attachment lifecycle events (beforeAttachmentUpload, attachmentUploadSuccess, attachmentUploadFailure, attachmentRemoved)**
106- **Validate files before upload**
107- **Initialize prompts with pre-attached files**
108- Handle server-side file processing
109- Custom attachment templates (attachmentTemplate)
110
111### Custom Views
112📄 **Read:** [references/custom-views.md](references/custom-views.md)
113- Create multiple views (Assist and Custom types)
114- Set view names and icons
115- Define view-specific templates
116- **Configure activeView property to set initial view**
117- **Switch between views programmatically**
118- **Persist active view across sessions**
119- **Conditionally set initial view based on user role or state**
120- Display side-by-side content panels
121- Use cases for multi-view layouts
122
123### Templating System
124📄 **Read:** [references/templating-system.md](references/templating-system.md)
125- Customize banner templates (welcome content)
126- Create prompt item templates (user message display)
127- Design response item templates (AI response display)
128- Build suggestion item templates
129- Create custom footer templates
130- Access template context data
131
132### AI Service Integration
133📄 **Read:** [references/ai-integration-setup.md](references/ai-integration-setup.md)
134- Integrate with Azure OpenAI, OpenAI, Gemini, Claude
135- Configure API credentials and authentication
136- Handle real-time prompt processing
137- Stream responses for live typing effects
138- Parse markdown responses with marked library
139- Error handling and rate limiting
140- Security considerations for API keys
141
142### Generative UI
143📄 **Read:** [references/generative-ui.md](references/generative-ui.md)
144- **Register custom tools with registerToolUI() method**
145- **Configure tool templates and handlers for rendering**
146- **Add interactive elements (charts, cards, custom tools) via blocks property**
147- **Render multiple tools within single AI response**
148- **Configure AI system prompts for structured JSON generation**
149- **AI service integration with generative UI blocks**
150
151### Speech Capabilities
152📄 **Read:** [references/speech-capabilities.md](references/speech-capabilities.md)
153- Enable Speech-to-Text (voice input)
154- Configure speech recognition language
155- Handle interim transcripts while speaking
156- Implement Text-to-Speech (voice output) via Web Speech API
157- **Convert AI responses to spoken audio**
158- **Customize TTS with textToSpeechSettings (language, speechPitch, speechRate, volume, voice)**
159- Customize button labels and icons
160- Handle speech events (start, stop, transcript, error)
161- Browser compatibility notes
162
163### Chain of Thoughts
164📄 **Read:** [references/chain-of-thoughts.md](references/chain-of-thoughts.md)
165- **Visualize AI reasoning process with thinking blocks**
166- **Configure thinking blocks with stages and status updates**
167- **Add multi-stage reasoning workflows (completed, inprogress, failed)**
168- **Customize thinking block templates**
169- **Add inline context items with badges and tooltips**
170- **Handle editableContextClicked events for interactive context**
171- **Configure stage-level item templates**
172- Stream thinking blocks for real-time reasoning visualization
173
174### Methods and APIs
175📄 **Read:** [references/methods-and-apis.md](references/methods-and-apis.md)
176- Use addPromptResponse() method
177- Execute prompts dynamically with executePrompt()
178- Scroll to bottom programmatically
179- Access component instance via refs
180- Manage component state
181- Common patterns and gotchas
182
183---
184
185## Quick Start Example
186
187```tsx
188import { AIAssistViewComponent, PromptRequestEventArgs } from '@syncfusion/ej2-react-interactive-chat';
189import * as React from 'react';
190import * as ReactDOM from "react-dom";
191
192function App() {
193 const assistInstance = React.useRef<AIAssistViewComponent>(null);
194
195 const onPromptRequest = (args: PromptRequestEventArgs) => {
196 setTimeout(() => {
197 let defaultResponse = 'For real-time AI processing, connect to your preferred service (OpenAI, Azure OpenAI, etc.).';
198 assistInstance.current.addPromptResponse(defaultResponse);
199 }, 1000);
200 };
201
202 return (
203 <AIAssistViewComponent
204 id="aiAssistView"
205 ref={assistInstance}
206 promptRequest={onPromptRequest}
207 prompt={'Welcome! How can I help?'}
208 promptSuggestions={['Ask about features', 'Get started guide']}
209 />
210 );
211}
212
213ReactDOM.render(<App />, document.getElementById('container'));
214```
215
216---
217
218## Common Patterns
219
220### Pattern 1: Basic Chat with Suggestions
221Create a simple conversational interface with predefined suggestions:
222- Enable prompt suggestions to guide user interactions
223- Handle promptRequest event with simple responses
224- Display conversation history automatically
225
226### Pattern 2: AI Service Integration
227Connect to real AI services for intelligent responses:
228- Use promptRequest event to capture user input
229- Call AI API with prompt text
230- Stream response character-by-character for live effect
231- Parse markdown responses for formatted output
232
233### Pattern 3: Multi-View Dashboard
234Combine chat with supporting content:
235- Create Assist view for conversation
236- Add Custom view for settings/sidebar
237- Switch activeView based on user interaction
238- Share data between views
239
240### Pattern 4: Voice-Enabled Chat
241Enable hands-free interaction with speech:
242- Enable speechToTextSettings to capture voice
243- Configure Text-to-Speech for response audio
244- Use toolbar for voice control buttons
245- Handle speech events for status feedback
246
247### Pattern 5: File-Attached Prompts
248Support file uploads with prompts:
249- Enable attachments with enableAttachments property
250- Configure attachment endpoints and file restrictions
251- Include file data in prompt context
252- Send files to backend API
253
254### Pattern 6: Chain of Thoughts Reasoning
255Visualize AI's step-by-step reasoning process:
256- Inject AssistThinking module for thinking block support
257- Create thinking blocks with multiple reasoning stages
258- Use status updates (completed, inprogress, failed) for real-time progress
259- Stream thinking blocks alongside text responses
260- Add context items to highlight referenced tools or files
261- Customize block and stage templates for branded styling
262
263---
264
265## Key Props & Configuration
266
267### Essential Props
268- `promptRequest`: Event handler when user submits prompt
269- `prompt`: Initial/default text in prompt input
270- `promptPlaceholder`: Placeholder text for input area
271- `promptSuggestions`: Array of suggested prompts
272- `prompts`: Pre-configured conversation data
273
274### Customization Props
275- `promptIconCss`: CSS class for user avatar
276- `responseIconCss`: CSS class for AI avatar
277- `showClearButton`: Show/hide clear button (default: false)
278- `showHeader`: Show/hide component header (default: true)
279- `enableScrollToBottom`: Show scroll-to-bottom button (default: true)
280- `height`: Component height (string | number, default: '100%')
281- `width`: Component width (string | number, default: '100%')
282- `cssClass`: Custom CSS classes for styling
283- `activeView`: Currently displayed view index (number, default: 0)
284
285### Template Props
286- `bannerTemplate`: Welcome banner content
287- `promptItemTemplate`: User message display
288- `responseItemTemplate`: AI response display
289- `promptSuggestionItemTemplate`: Suggestion styling
290- `footerTemplate`: Custom prompt input area
291
292### Advanced Props
293- `enableAttachments`: Enable file uploads (default: false)
294- `attachmentSettings`: File upload configuration
295- `speechToTextSettings`: Voice input configuration
296- `textToSpeechSettings`: Text-to-speech configuration
297- `toolbarSettings`: Header toolbar configuration
298- `footerToolbarSettings`: Footer toolbar configuration
299- `responseToolbarSettings`: Response action toolbar
300- `promptToolbarSettings`: Prompt toolbar configuration
301- `blockTemplate`: Custom template for thinking blocks and other response blocks
302- `itemTemplate`: Custom template for individual stages within thinking blocks
303- `locale`: Localization/globalization setting (default: 'en-US')
304- `enableRtl`: Enable right-to-left rendering (default: false)
305- `enablePersistence`: Enable state persistence (default: false)
306
307### Generative UI Props
308- **`blocks`**: Array of response blocks (TextBlock, ToolBlock, ThinkingBlock) to render dynamic UI elements within responses
309- **`registerToolUI()`**: Public method to register custom tool templates for rendering interactive components (charts, cards, custom tools) within AI responses
310
311### Event Props
312- `created`: Component lifecycle event
313- `promptRequest`: Prompt submission event
314- `promptChanged`: Prompt text change event
315- `stopRespondingClick`: Stop button click event
316- `beforeAttachmentUpload`: Before file upload event
317- `attachmentUploadSuccess`: File upload success event
318- `attachmentUploadFailure`: File upload failure event
319- `attachmentRemoved`: File removal event
320- `editableContextClicked`: Fires when user clicks an inline context item in thinking blocks
321
322---
323
324## Common Use Cases
325
326### Chat Bot with AI Integration
327Build a customer service chatbot connected to OpenAI or Azure services:
3281. Set up component with suggestions
3292. Handle promptRequest to send to AI API
3303. Stream responses for real-time feedback
3314. Use templates for branded appearance
332
333### Voice-Enabled Assistant
334Create hands-free voice interaction:
3351. Enable speechToTextSettings
3362. Configure Text-to-Speech toolbar button
3373. Handle speech events for status
3384. Provide visual feedback during voice capture
339
340### File Analysis Chat
341Allow users to upload and discuss files:
3421. Enable attachments
3432. Configure file restrictions (type, size, count)
3443. Send files with prompts to backend
3454. Display file information in conversation
346
347### Multi-Feature Dashboard
348Combine chat with settings and content:
3491. Create multiple views (Assist + Custom)
3502. Use templates for custom view content
3513. Implement view switching logic
3524. Share conversation state between views
353
354### Thinking-Enabled Reasoning Assistant
355Showcase AI's reasoning process for complex tasks:
3561. Inject AssistThinking module for thinking block support
3572. Configure thinking blocks with multiple stages
3583. Stream blocks with status updates (inprogress → completed)
3594. Add context items (tools, files, search results) within stages
3605. Customize block templates for transparent reasoning display
3616. Handle editableContextClicked for interactive exploration
362
363### Generative UI with Dynamic Interactive Tools
364Render dynamic interactive components and custom tools within AI responses:
3651. Register custom tools (charts, cards, forms) using registerToolUI()
3662. Configure tool templates for responsive UI rendering
3673. Define blocks array with TextBlock and ToolBlock combinations
3684. Configure AI system prompt for structured JSON generation
3695. Send tool blocks within addPromptResponse() calls
3706. Create rich, interactive experiences with AI-generated UI elements
371
372---