Syncfusion angular ai assistview
Skill syncfusion/angular-ui-components-skills/skills/syncfusion-angular-ai-assistview
Implement the Syncfusion Angular AI AssistView component. Use this skill when you need to create conversational AI interfaces, integrate AI services, add chat-like UI, or create intelligent assistant applications. Includes setup, configuration, event handling, AI integrations (OpenAI, Gemini, Ollama), speech features, chain-of-thought reasoning, generative UI tool support, and customization. Use this skill for all AI AssistView component implementation needs.From its SKILL.md
npx -y skills add syncfusion/angular-ui-components-skills --skill syncfusion-angular-ai-assistviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
16.9 KB, ~3.7k tokens by cl100k_base, as published. Nobody here has run it
Syncfusion Angular AI AssistView Component
Component Overview
The Syncfusion AI AssistView is a powerful Angular component that provides a ready-to-use interface for building conversational AI applications.
Key Capabilities:
- Conversation Management - Manage prompt-response pairs with history, persistence, and markdown rendering
- AI Service Integration - Connect to OpenAI, Gemini, Ollama, Lite-LLM, and MCP providers with streaming support
- Chain of Thoughts - Visualize AI reasoning as collapsible thinking blocks with multi-stage, dynamic status updates via the injectable
AssistThinkingmodule - Generative UI - Render interactive tools, charts, and custom components within AI responses using
blocksandregisterToolUI - Speech Features - Built-in speech-to-text with 11 configurable properties and 4 events
- Toolbar System - Four toolbar types (header, prompt, response, footer) with custom actions and tag directives
- View Management - Multiple views with programmatic
activeViewcontrol and dynamic switching - Events & Interactions - Typed event arguments (PromptRequestEventArgs, PromptChangedEventArgs, StopRespondingEventArgs)
- File Attachments - Support for file uploads with type/size restrictions and attachment click events
- Templates - Customize prompts, responses, suggestions, and banners with flexible templates
- Methods - Programmatically add/update responses, execute prompts, and control component behavior
- Globalization - Full RTL support and localization for 12+ languages with locale-based formatting
- Customizable UI - Height, width, CSS classes, HTML attributes, and theme customization
Documentation and Navigation Guide
Getting Started
π Read: references/getting-started.md
- Installation and dependency setup
- Angular environment configuration
- Basic component initialization
- CSS imports and theme configuration
- First working example
Core Features & Conversation Management
π Read: references/assist-view-basics.md
- Setting prompt text and placeholders
- Managing prompt-response collections
- Markdown response rendering
- Configuring prompt suggestions
- Customizing user and assistant avatars
- UI controls (clear button, scroll-to-bottom)
- Component configuration (height, width, showHeader, cssClass, htmlAttributes)
- State persistence with
enablePersistence - Globalization and localization (locale property with 12+ languages)
- RTL support with
enableRtlfor Arabic, Hebrew, Persian, Urdu
Appearance & Styling
π Read: references/appearance-customization.md
- Setting component width and height
- Applying custom CSS classes
- Theme customization
- Responsive design patterns
Multiple Views & Custom Content
π Read: references/custom-views.md
- Adding custom view models
- View types (Assist and Custom)
- View configuration and naming
- Managing multiple views within one component
- Programmatic view switching with
activeViewproperty - Dynamic view navigation patterns
- View history and breadcrumb navigation
- Workflow-based view switching
- Conditional view display based on user roles
Programmatic Control & Methods
π Read: references/methods-and-actions.md
- Adding prompt responses (string and object
- Complete event arguments reference section
- PromptRequestEventArgs with 6 properties (prompt, attachedFiles, promptSuggestions, cancel, etc.)
- PromptChangedEventArgs with 5 properties (value, previousValue, element, event)
- StopRespondingEventArgs for canceling responses
- AttachmentClickEventArgs with FileInfo interface
- Production-ready examples with all event types formats)
- Executing prompts dynamically
- Response handling patterns
- Programmatic interaction
Chain of Thoughts
π Read: references/chain-of-thoughts.md
- Enabling reasoning visualization with the injectable
AssistThinkingmodule - Thinking block configuration (
blocksproperty,blockType: 'thinking') - Streaming multi-step reasoning with
addPromptResponseandisFinalUpdate - Adding stages with the
stagesarray andThinkingStageproperties - Stage status indicators (
completed,inprogress,failed) - Inline context items with
editableContextand{index}placeholders - Handling the
editableContextClickedevent - Customizing rendering with
blockTemplateanditemTemplate
Generative UI
π Read: references/generative-ui.md
- Registering custom tools with
registerToolUI(toolName, template, handler) - Configuring tool templates and interactive handler functions
- Adding
toolblocks to responses viaaddPromptResponse(toolName,props) - Configuring the AI service system prompt to return structured
blocksJSON - Chaining follow-up prompts with
executePromptafter tool interaction - Complete production example: recipe builder with custom and chart-based tools
Text to Speech
π Read: references/text-to-speech.md
- Enabling built-in Text-to-Speech with the
e-assist-audioresponse toolbar item - Reading AI responses aloud via the browser's
SpeechSynthesisUtteranceAPI - Customizing speech behavior with
textToSpeechSettings(language, speechPitch, speechRate, volume, voice)
Complete documentation for all 4 toolbar types
- Header Toolbar (
toolbarSettings) - Global actions and navigation - Prompt Toolbar (
promptToolbarSettings) - Actions on user prompts - Response Toolbar (
responseToolbarSettings) - Actions on AI responses - Footer Toolbar (
footerToolbarSettings) - Input area customization - ToolbarItemModel interface with 10 properties
- ToolbarItemClickedEventArgs with dataIndex handling
- Tag directive approach:
<e-toolbarsettings>,<e-toolbaritem> - Property binding approach for dynamic toolbar items
- Common patterns, best practices, and troubleshootingest, promptChanged)
- File upload events (beforeAttachmentUpload, attachmentUploadSuccess)
- Event handling patterns and best practices
File Attachments
π Read: references/file-attachments.md
- File attachment configuration
- Upload handling and validation
- File size and type restrictions
- Attachment display and management
- Custom attachment templates (attachmentTemplate)
Toolbar Configuration
π Read: references/toolbar-items.md
- Toolbar customization
- Built-in speech-to-text with
speechToTextSettings(recommended approach) - SpeechToTextSettingsModel with 11 configurable properties
- ButtonSettingsModel and TooltipSettingsModel interfaces
- 4 speech events: onStart, onStop, transcriptChanged, onError
- Event arguments: StartListeningEventArgs, StopListeningEventArgs, TranscriptChangedEventArgs, ErrorEventArgs
- Language support with 10+ language codes (en-US, es-ES, fr-FR, de-DE, ja-JP, etc.)
- Interim results handling with
allowInterimResults - Custom Web Speech API implementation (alternative approach)
- Text-to-speech setup and configuration
- Browser compatibility and error handling
- Regenerate responses with
e-assist-regenerateicon, response navigation UI, and theregeneratedResponsesproperty
Templates & Custom Rendering
π Read: references/templates.md
- Template system overview
- Prompt templates
- Response templates
- Custom template creation
AI Service Integration
π Read: references/ai-integrations.md
- Azure OpenAI integration setup
- Gemini integration
- Lite-LLM integration
- Model Context Protocol (MCP) integration
- Ollama integration
- Security best practices and API management
Speech Features
π Read: references/speech-features.md
- Speech-to-text setup and configuration
- Text-to-speech setup and configuration
- Audio handling
- Browser compatibility considerations
Methods (Generative UI)
| Method | Description |
|---|---|
registerToolUI({ toolName, template, handler }) | Registers a tool's rendering template and optional interaction handler. Call before referencing the tool in any response. |
executePrompt(prompt) | Programmatically triggers a new prompt/response cycle, useful for chaining follow-up AI responses after a tool interaction. |
Quick Start Example
Here's a minimal working example to get started:
import { Component } from '@angular/core';
import { AIAssistViewModule } from '@syncfusion/ej2-angular-interactive-chat';
@Component({
imports: [AIAssistViewModule],
standalone: true,
selector: 'app-root',
template: `
<div ejs-aiassistview
id='aiAssistView'
[promptSuggestions]="suggestions"
(promptRequest)="onPromptRequest($event)">
</div>
`,
styles: [`
:host ::ng-deep #aiAssistView {
height: 100vh;
}
`]
})
export class AppComponent {
suggestions = [
'What is Angular?',
'How to create components?',
'Explain dependency injection'
];
onPromptRequest(args: any) {
// Handle prompt and provide response
setTimeout(() => {
const response = 'This is a sample response from your AI service.';
// Add response using component method
}, 1000);
}
}
Common Patterns
Pattern 1: Basic Conversation Flow
- Initialize component with suggestions
- User enters prompt
promptRequestevent fires- Call your AI service
- Use
addPromptResponse()to display result - Conversation history maintained automatically
Pattern 2: AI Service Integration with Streaming
- Enable streaming with
[enableStreaming]="true" - Configure AI provider credentials (OpenAI, Gemini, etc.)
- In
promptRequestevent, call provider API with streaming - Use
ReadableStreamfor chunked responses - Handle
stopRespondingClickevent for cancellation - Update UI with
addPromptResponse()incrementally
Pattern 3: Custom View Management with activeView
- Define multiple view types (Assist, Custom)
- Use
[activeView]="currentIndex"to control display - Switch between views programmatically based on user action
- Track view history for back/forward navigation
- Each view can have different configuration
- Maintain separate state per view
Pattern 4: Complete Toolbar Configuration
- Configure header toolbar for global actions (new chat, export, settings)
- Set up prompt toolbar for user prompt actions (edit, copy, retry)
- Add response toolbar for AI response actions (copy, regenerate, like/dislike)
- Configure footer toolbar for input actions (formatting, attachments)
- Use tag directive or property binding approach
- Handle
itemClickedevents withdataIndexfor context
Pattern 5: Speech-Enabled Interface
- Configure
speechToTextSettingswith language and options - Enable
allowInterimResultsfor real-time transcription - Handle speech events:
onStart,onStop,transcriptChanged,onError - Automatically submit recognized text as prompts
- Provide visual feedback during listening state
Pattern 6: Event-Driven Actions with Typed Arguments
- Use
PromptRequestEventArgsto access prompt, attachedFiles, and cancel flag - Use
PromptChangedEventArgsfor real-time input validation - Handle
StopRespondingEventArgsto cancel long-running requests - Use
beforeAttachmentUploadfor file validation - Use
editableContextClickedfor inline context badge interactions
Pattern 7: Chain of Thoughts (Reasoning Visualization)
- Inject the
AssistThinkingmodule viaAIAssistView.Inject(AssistThinking) - Push
blockswithblockType: 'thinking'viaaddPromptResponse, usingisFinalUpdate: falsewhile streaming - Update
stages[].status(inprogressβcompleted/failed) as reasoning progresses - Use
editableContextwith{index}placeholders for clickable inline references - Deliver the final
responsetext alongside the lastisFinalUpdate: truecall - Optionally customize rendering with
blockTemplate(full block) oritemTemplate(per-stage)
Pattern 8: Generative UI (Interactive Tools in Responses)
- Register each tool once via
registerToolUI({ toolName, template, handler }), typically inngAfterViewInit - Reference registered tools in responses using
blocks: [{ blockType: 'tool', toolName, props }] - Combine
textandtoolblocks in the sameblocksarray for narrative + interactive content - Configure the AI system prompt to return a structured
blocksJSON array for dynamic tool invocation - Use
executePromptto trigger a follow-up AI response after a user interacts with a rendered tool - Parse AI-returned JSON defensively and fall back to plain text on malformed output
Key Properties
| Property | Type | Default | When to Use |
|---|---|---|---|
prompt | string | '' | Pre-fill prompt text |
promptPlaceholder | string | 'Type prompt for assistance...' | Guide user input |
promptSuggestions | string[] | [] | Provide quick starting prompts |
prompts | object[] | [] | Initialize conversation history |
showClearButton | boolean | false | Show button to clear input |
enableScrollToBottom | boolean | true | Show scroll-to-bottom indicator |
blockTemplate | string | object | '' | Customize rendering of thinking blocks |
itemTemplate | string | object | '' | Customize rendering of individual thinking stage items |
Layout & Appearance
| Property | Type | Default | When to Use |
|---|---|---|---|
width | string | number | '100%' | Set container width |
height | string | number | '100%' | Set container height |
cssClass | string | '' | Apply custom CSS styling and themes |
showHeader | boolean | true | Control header visibility |
htmlAttributes | object | {} | Add custom HTML attributes (aria-, data-, etc.) |
Streaming & Features
| Property | Type | Default | When to Use |
|---|---|---|---|
enableStreaming | boolean | false | Enable real-time streaming responses |
speechToTextSettings | SpeechToTextSettingsModel | null | Configure built-in speech recognition |
textToSpeechSettings | TextToSpeechSettingsModel | null | Configure built-in Text-to-speech support |
activeView | number | 0 | Programmatically switch between views |
Globalization
| Property | Type | Default | When to Use |
|---|---|---|---|
locale | string | 'en-US' | Set language/culture (en-US, es-ES, fr-FR, de-DE, ja-JP, ar-SA, etc.) |
enableRtl | boolean | false | Enable right-to-left text direction (Arabic, Hebrew, Persian, Urdu) |
enablePersistence | boolean | false | Save component state between page reloads |
Toolbar Configuration
| Property | Type | Default | When to Use |
|---|---|---|---|
toolbarSettings | ToolbarSettingsModel | null | Configure header toolbar (global actions) |
promptToolbarSettings | PromptToolbarSettingsModel | null | Configure prompt toolbar (edit, copy, retry) |
responseToolbarSettings | ResponseToolbarSettingsModel | null | Configure response toolbar (copy, regenerate, like/dislike) |
footerToolbarSettings | FooterToolbarSettingsModel | null | Configure footer toolbar (formatting, attachments) |
Common Use Cases
- Customer Support Chatbot: Build customer service interfaces with knowledge base integration
- Code Assistant: Create coding helpers with AI that can review and suggest code
- Content Writer Assistant: Implement writing tools with grammar and style suggestions
- Data Analysis Tool: Create interfaces for users to query and analyze data through natural language
- Learning Platform: Build educational assistants that answer student questions
- Internal Knowledge Bot: Create enterprise assistants for company documentation and FAQs
- Multi-language Support: Implement translation and localization features
- Accessibility Assistant: Provide reading aid or instruction assistance
- Reasoning Visualization: Build interfaces that surface AI reasoning via collapsible Chain of Thoughts blocks
- Generative UI Applications: Render interactive tools and charts (cards, gauges, custom widgets) inline within AI responses
What ships with it: 14 files
272.4 KB alongside SKILL.md
references/
- ai-integrations.md13.2 KB
- appearance-customization.md8.4 KB
- assist-view-basics.md26.9 KB
- chain-of-thoughts.md21.1 KB
- custom-views.md24.1 KB
- events-handling.md25.4 KB
- file-attachments.md10.0 KB
- generative-ui.md21.2 KB
- getting-started.md3.8 KB
- methods-and-actions.md25.3 KB
- speech-features.md28.4 KB
- templates.md20.2 KB
- text-to-speech.md5.9 KB
- toolbar-items.md38.4 KB