Skip to main content

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%):

RangeVisualMeaning
90-100%GreenVery sure
70-89%YellowLikely
50-69%OrangePossible
<50%GrayUncertain

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:

IntentExampleAction
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