Saltar al contenido principal

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

RangoVisualSignificado
90-100%VerdeMuy seguro
70-89%AmarilloProbable
50-69%NaranjaPosible
<50%GrisIncierto
// 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ónEjemploAcció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