Asistente IA
El asistente de inteligencia artificial mejora la experiencia de búsqueda con filtros guiados, sugerencias de queries y análisis de intención.
Activación
NeuroonWidget.init({
container: '#neuroon-search',
token: 'YOUR_TOKEN',
features: {
aiAssistant: true, // Deshabilitado por defecto
},
});
Plan requerido
El asistente IA está disponible en planes Growth y superiores. Contacta con soporte para activarlo.
Funcionalidades
1. Filtros guiados
El asistente analiza la búsqueda y sugiere filtros relevantes automáticamente:
Búsqueda: "zapatillas running nike baratas"
Filtros sugeridos:
✓ Categoría: Running (confianza: 95%)
✓ Marca: Nike (confianza: 98%)
✓ Precio: < 100€ (confianza: 75%)
widget.on('search', ({ query }) => {
// Los filtros guiados aparecen automáticamente en la UI
});
// Acceder a filtros sugeridos
widget.on('ai:filters', ({ filters, confidence }) => {
console.log('Filtros sugeridos:', filters);
console.log('Confianza:', confidence);
});
2. Indicador de confianza
Cada filtro incluye un nivel de confianza (0-100%):
| Rango | Visual | Significado |
|---|---|---|
| 90-100% | Verde | Muy seguro |
| 70-89% | Amarillo | Probable |
| 50-69% | Naranja | Posible |
| <50% | Gris | Incierto |
// Componente ConfidenceRing en la UI
// Muestra un anillo circular con el porcentaje
3. Sugerencias de queries
Si la búsqueda es ambigua, el asistente sugiere alternativas:
Búsqueda: "deportivas"
Sugerencias:
→ "zapatillas running" (35% de usuarios)
→ "zapatillas casual" (28% de usuarios)
→ "zapatillas baloncesto" (15% de usuarios)
widget.on('ai:suggestions', ({ suggestions }) => {
suggestions.forEach(s => {
console.log(`${s.query} - ${s.popularity}%`);
});
});
4. Análisis de intención
El asistente detecta la intención del usuario:
| Intención | Ejemplo | Acción |
|---|---|---|
browse | "ver zapatos" | Mostrar categoría |
specific | "Nike Air Max 90" | Búsqueda exacta |
compare | "diferencia entre X e Y" | Abrir comparación |
price | "más barato que 50€" | Aplicar filtro precio |
feature | "impermeables" | Filtrar por característica |
widget.on('ai:intent', ({ intent, confidence }) => {
if (intent === 'compare' && confidence > 0.8) {
// Sugerir abrir comparación
widget.openComparison();
}
});
Interfaz de usuario
Panel de filtros guiados
Cuando el asistente detecta filtros relevantes, aparece un panel especial:
┌─────────────────────────────────────────┐
│ ✨ Filtros sugeridos │
├─────────────────────────────────────────┤
│ ○ Nike [95%] ────────── │
│ ○ Running [90%] ───────── │
│ ○ < 100€ [75%] ─────── │
│ │
│ [Aplicar todos] [Ignorar] │
└─────────────────────────────────────────┘
Query refinada
Si el asistente detecta una mejor forma de buscar:
┌─────────────────────────────────────────┐
│ 💡 ¿Quisiste decir: "zapatillas trail"? │
│ [Sí, buscar] [No, mantener] │
└─────────────────────────────────────────┘
API de JavaScript
Eventos del asistente
// Filtros sugeridos
widget.on('ai:filters', ({ filters, confidence }) => {
console.log('Filtros:', filters);
// { brands: ['Nike'], categories: ['running'], priceMax: 100 }
});
// Sugerencias de query
widget.on('ai:suggestions', ({ suggestions }) => {
suggestions.forEach(s => {
console.log(`${s.query} (${s.popularity}%)`);
});
});
// Intención detectada
widget.on('ai:intent', ({ intent, confidence, entities }) => {
console.log(`Intención: ${intent} (${confidence}%)`);
console.log('Entidades:', entities);
// { brand: 'Nike', category: 'running', maxPrice: 100 }
});
// Query refinada
widget.on('ai:refinedQuery', ({ original, refined, reason }) => {
console.log(`Original: "${original}"`);
console.log(`Refinada: "${refined}"`);
console.log(`Razón: ${reason}`);
});
Aplicar filtros sugeridos
// Aplicar todos los filtros sugeridos
widget.on('ai:filters', ({ filters }) => {
widget.setFilters(filters);
});
// O aplicar selectivamente
widget.on('ai:filters', ({ filters, confidence }) => {
if (confidence > 0.8) {
widget.setFilters(filters);
} else {
// Mostrar opciones al usuario
showFilterOptions(filters);
}
});
Usar query refinada
widget.on('ai:refinedQuery', ({ refined }) => {
// Ejecutar búsqueda con query refinada
widget.search(refined);
});
Personalización
Traducciones
NeuroonWidget.init({
translations: {
ai: {
thinking: 'Analizando...',
analyzing: 'Analizando tu búsqueda...',
suggestion: 'Sugerencia',
confidence: 'Confianza: {percent}%',
refinedQuery: '¿Quisiste decir: {query}?',
guidedFilters: 'Filtros sugeridos',
applyAll: 'Aplicar todos',
ignore: 'Ignorar',
yes: 'Sí',
no: 'No',
},
},
});
Estilos
.neuroon-widget {
/* Color del indicador de confianza */
--nrn-confidence-high: 16 185 129; /* Verde */
--nrn-confidence-medium: 245 158 11; /* Ámbar */
--nrn-confidence-low: 148 163 184; /* Gris */
/* Panel de sugerencias */
--nrn-suggestion-bg: 30 41 59;
--nrn-suggestion-border: 168 85 247; /* Púrpura */
}
Configuración avanzada
Umbral de confianza
Configura el umbral mínimo para mostrar sugerencias:
NeuroonWidget.init({
features: {
aiAssistant: true,
},
ai: {
minConfidence: 0.6, // Mínimo 60% para mostrar
autoApplyThreshold: 0.9, // Auto-aplicar si > 90%
maxSuggestions: 3, // Máximo 3 sugerencias de query
},
});
Desactivar funcionalidades específicas
NeuroonWidget.init({
features: {
aiAssistant: true,
},
ai: {
filters: true, // Filtros guiados
suggestions: true, // Sugerencias de query
refinedQuery: false, // Desactivar query refinada
intentDetection: true, // Detección de intención
},
});
Ejemplos de uso
Auto-aplicar filtros de alta confianza
const widget = NeuroonWidget.init({
features: { aiAssistant: true },
});
widget.on('ai:filters', ({ filters, confidence }) => {
if (confidence > 0.85) {
// Alta confianza: aplicar automáticamente
widget.setFilters(filters);
showToast('Filtros aplicados automáticamente');
} else if (confidence > 0.6) {
// Confianza media: mostrar como sugerencia
showFilterSuggestion(filters);
}
// Baja confianza: ignorar silenciosamente
});
Analytics de IA
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,
});
});
widget.on('ai:intent', ({ intent, confidence }) => {
gtag('event', 'ai_intent_detected', {
intent,
confidence,
});
});
Mostrar explicación de filtros
widget.on('ai:filters', ({ filters, entities, reasoning }) => {
// reasoning contiene la explicación del asistente
console.log(reasoning);
// "Detecté que buscas zapatillas de running de Nike
// con un presupuesto limitado (< 100€)"
showExplanation(reasoning);
});
Rendimiento
El análisis de IA añade ~50-100ms a cada búsqueda. Para optimizar:
NeuroonWidget.init({
features: {
aiAssistant: true,
},
ai: {
debounce: 300, // Esperar 300ms antes de analizar
cache: true, // Cachear análisis de queries similares
},
});
Próximos pasos
- Búsqueda Conversacional - Chat con contexto
- Comparación de Productos - Análisis IA de productos
- Callbacks - Más eventos disponibles