AI Assistant
The AI assistant enhances the search experience with guided filters, query suggestions, and intent analysis.
Activation
NeuroonWidget.init({
container: '#neuroon-search',
token: 'YOUR_TOKEN',
features: {
aiAssistant: true, // Disabled by default
},
});
Plan required
The AI assistant is available on Growth plans and above. Contact support to activate it.
Features
1. Guided Filters
The assistant analyzes the search and automatically suggests relevant filters:
Search: "cheap nike running shoes"
Suggested filters:
✓ Category: Running (confidence: 95%)
✓ Brand: Nike (confidence: 98%)
✓ Price: < $100 (confidence: 75%)
widget.on('search', ({ query }) => {
// Guided filters appear automatically in the UI
});
// Access suggested filters
widget.on('ai:filters', ({ filters, confidence }) => {
console.log('Suggested filters:', filters);
console.log('Confidence:', confidence);
});
2. Confidence Indicator
Each filter includes a confidence level (0-100%):
| Range | Visual | Meaning |
|---|---|---|
| 90-100% | Green | Very sure |
| 70-89% | Yellow | Likely |
| 50-69% | Orange | Possible |
| <50% | Gray | Uncertain |
3. Query Suggestions
If the search is ambiguous, the assistant suggests alternatives:
Search: "sneakers"
Suggestions:
→ "running shoes" (35% of users)
→ "casual sneakers" (28% of users)
→ "basketball shoes" (15% of users)
widget.on('ai:suggestions', ({ suggestions }) => {
suggestions.forEach(s => {
console.log(`${s.query} - ${s.popularity}%`);
});
});
4. Intent Analysis
The assistant detects user intent:
| Intent | Example | Action |
|---|---|---|
browse | "see shoes" | Show category |
specific | "Nike Air Max 90" | Exact search |
compare | "difference between X and Y" | Open comparison |
price | "under $50" | Apply price filter |
feature | "waterproof" | Filter by feature |
widget.on('ai:intent', ({ intent, confidence }) => {
if (intent === 'compare' && confidence > 0.8) {
// Suggest opening comparison
widget.openComparison();
}
});
User Interface
Guided Filters Panel
When the assistant detects relevant filters, a special panel appears:
┌─────────────────────────────────────────┐
│ ✨ Suggested filters │
├─────────────────────────────────────────┤
│ ○ Nike [95%] ────────── │
│ ○ Running [90%] ───────── │
│ ○ < $100 [75%] ─────── │
│ │
│ [Apply all] [Ignore] │
└─────────────────────────────────────────┘
Refined Query
If the assistant detects a better way to search:
┌─────────────────────────────────────────┐
│ 💡 Did you mean: "trail running shoes"? │
│ [Yes, search] [No, keep] │
└─────────────────────────────────────────┘
JavaScript API
Assistant events
// Suggested filters
widget.on('ai:filters', ({ filters, confidence }) => {
console.log('Filters:', filters);
// { brands: ['Nike'], categories: ['running'], priceMax: 100 }
});
// Query suggestions
widget.on('ai:suggestions', ({ suggestions }) => {
suggestions.forEach(s => {
console.log(`${s.query} (${s.popularity}%)`);
});
});
// Detected intent
widget.on('ai:intent', ({ intent, confidence, entities }) => {
console.log(`Intent: ${intent} (${confidence}%)`);
console.log('Entities:', entities);
// { brand: 'Nike', category: 'running', maxPrice: 100 }
});
// Refined query
widget.on('ai:refinedQuery', ({ original, refined, reason }) => {
console.log(`Original: "${original}"`);
console.log(`Refined: "${refined}"`);
console.log(`Reason: ${reason}`);
});
Apply suggested filters
// Apply all suggested filters
widget.on('ai:filters', ({ filters }) => {
widget.setFilters(filters);
});
// Or apply selectively
widget.on('ai:filters', ({ filters, confidence }) => {
if (confidence > 0.8) {
widget.setFilters(filters);
} else {
// Show options to user
showFilterOptions(filters);
}
});
Customization
Translations
NeuroonWidget.init({
translations: {
ai: {
thinking: 'Analyzing...',
analyzing: 'Analyzing your search...',
suggestion: 'Suggestion',
confidence: 'Confidence: {percent}%',
refinedQuery: 'Did you mean: {query}?',
guidedFilters: 'Suggested filters',
applyAll: 'Apply all',
ignore: 'Ignore',
yes: 'Yes',
no: 'No',
},
},
});
Styles
.neuroon-widget {
/* Confidence indicator color */
--nrn-confidence-high: 16 185 129; /* Green */
--nrn-confidence-medium: 245 158 11; /* Amber */
--nrn-confidence-low: 148 163 184; /* Gray */
/* Suggestions panel */
--nrn-suggestion-bg: 30 41 59;
--nrn-suggestion-border: 168 85 247; /* Purple */
}
Advanced Configuration
Confidence threshold
Configure minimum threshold to show suggestions:
NeuroonWidget.init({
features: {
aiAssistant: true,
},
ai: {
minConfidence: 0.6, // Minimum 60% to show
autoApplyThreshold: 0.9, // Auto-apply if > 90%
maxSuggestions: 3, // Maximum 3 query suggestions
},
});
Disable specific features
NeuroonWidget.init({
features: {
aiAssistant: true,
},
ai: {
filters: true, // Guided filters
suggestions: true, // Query suggestions
refinedQuery: false, // Disable refined query
intentDetection: true, // Intent detection
},
});
Usage Examples
Auto-apply high confidence filters
const widget = NeuroonWidget.init({
features: { aiAssistant: true },
});
widget.on('ai:filters', ({ filters, confidence }) => {
if (confidence > 0.85) {
// High confidence: apply automatically
widget.setFilters(filters);
showToast('Filters applied automatically');
} else if (confidence > 0.6) {
// Medium confidence: show as suggestion
showFilterSuggestion(filters);
}
// Low confidence: silently ignore
});
AI Analytics
widget.on('ai:filters', ({ filters, confidence }) => {
gtag('event', 'ai_filters_suggested', {
filters: JSON.stringify(filters),
confidence,
applied: confidence > 0.85,
});
});
widget.on('ai:suggestions', ({ suggestions }) => {
gtag('event', 'ai_suggestions_shown', {
count: suggestions.length,
top_suggestion: suggestions[0]?.query,
});
});
Performance
AI analysis adds ~50-100ms per search. To optimize:
NeuroonWidget.init({
features: {
aiAssistant: true,
},
ai: {
debounce: 300, // Wait 300ms before analyzing
cache: true, // Cache analysis of similar queries
},
});
Next steps
- Conversational Search - Chat with context
- Product Comparison - AI product analysis
- Callbacks - More available events