Visualización AI de métricas
1) Qué es la visualización AI
La visualización AI de métricas es un contorno donde los modelos (ML/LLM) son automáticamente:1. seleccionan el tipo de gráfico y los ejes apropiados,
2. resaltar patrones/anomalías/fracturas de tendencia,
3. formulan el texto explicable (insight/narrative),
4. ofrecen acciones (Next Best Action),
5. adaptan la vista al contexto del usuario y del dispositivo.
El objetivo es acortar el camino de la pregunta a la respuesta: menos selección manual de listas, más significados verificables.
2) Arquitectura en la palma de la mano
1. Semantic Layer: definiciones únicas de métricas/medidas (glosario, fórmulas, agregaciones, accesos).
2. NL→Query: convertir una consulta en lenguaje natural a SQL/SPARQL/DSL.
3. Query→Viz: gramática auto-seleccionada de gráficos y parámetros (ejes, escalas de registro, color/shape/size).
4. Insight Engine: detección de anomalías, breakpoints, seasonality, causal hints; Las prioridades de las señales.
5. Narrativo: generación de texto facturado con referencia a valores e intervalos de confianza.
6. RAG: mezcla de contexto desde el directorio de datos/configuraciones (metadatos, reglas de negocio).
7. Policy Guardrails: privacidad/acceso/enmascaramiento, verificación de números y enlaces.
8. Entrega: widgets web, tarjetas móviles, PDF/snapshots, webhooks en CRM/Slack.
3) Gramática de gráficos y auto-selección
Principios:- Tiempo → línea/área; categorías (≤8) → columnas/azulejos; clasificación → barra/tablero de liderazgo; distribución → histograma/violina/caja; correlaciones → scatter/heatmap.
- Eje de registro en crecimiento exponencial; racionamiento (%) en cuotas; small multiples - cuando hay muchas series.
- Selección de color: paletas semánticas para estados; el color ≠ al mismo tiempo un canal de orden y categoría.
- Las firmas solo donde llevan sentido: minimizamos la «tinta».
yaml chart:
mark: line encoding:
x: {field: dt, type: temporal, timeUnit: day}
y: {field: ggr, type: quantitative, aggregate: sum}
color: {field: region, type: nominal, legend: top, limit: 6}
transforms:
- filter: "dt >= now()-90d"
- calculate: {expr: "rolling_mean(ggr,7)", as: "ggr_7d"}
annotations:
- rule: {type: "changepoint", method: "cusum"}
- band: {type: "confidence", metric: "ggr", level: 0.9}
interactions: {tooltip: true, zoom: "x", brush: "x"}
4) NL→Viz: de una pregunta a un gráfico
Parcing de intenciones: métricas, cortes, período, filtros, agregados.
Validación en capa semántica: sólo campos/fórmulas permitidos.
Post-procesamiento: selección de la lista por tipo de campo y cardinalidad, auto-umbral bining/sampling.
Retroalimentación: mostrar SQL/DSL y download de datos (enmascarados) para generar confianza.
yaml ask: "Покажи GGR по странам за 90 дней, выдели резкие изменения"
metric: ggr dims: [country, dt]
filters: {dt: "last_90d"}
viz_hint: "line + changepoints"
5) Insight Engine: cómo generar «significados»
Señales:- Anomalías: descomposición STL, ESD/Prophet, BOCPD; marcamos dirección/magnitud/confianza.
- Fracturas de tendencia: prueba CUSUM/Chow; regresiones locales.
- Estacionalidad/campañas: comparación «vacaciones vs día normal», uplift a basline.
- Controladores de segmento: Shapley/feature importance encima de la regresión de tabla o boosting de degradado.
- Pistas causales: indicación de cambios concomitantes (dentro de la observación) + recordatorio de «esta es la correlación».
1. efecto en la métrica del negocio, 2) fuerza del efecto, 3) novedad, 4) confianza.
6) Generación de narrativa (texto)
Requisitos: hechos con números y fechas, indicación de la base de comparación, pulcritud de los términos.
Plantilla:7) Adaptación al contexto (personalización)
Roles: C-level - KPIs y narrativas; gestores - cortes y alertas; análisis - SQL/DSL y parámetros de modelos.
Dispositivo: sparklines compactos en el móvil, full viz en el escritorio.
Geo/idioma/moneda/zona horaria - automáticamente.
8) Explicabilidad y confianza
Cada firma en el gráfico es clickable → revela el cálculo (fórmula, agregaciones, filtros).
Indicamos incertidumbre estadística (barras de confianza, barras de error).
Para las descripciones LLM: RAG por metadatos, grillo de números por fuente (validación de sumas/rangos).
Registro de cambios: versión de fórmulas, datasets, chart.
9) Calidad y visualización SLO
Latency p95 renderizado, time-to-first-insight, proporción de solicitudes NL exitosas.
Explainability score (presencia de números/referencias/CI en la narrativa).
Accuracy NL→SQL (ex. aprox-match en consultas de referencia).
Accesibilidad: contraste, texto alt, teclado, modo daltonismo.
10) Disponibilidad (A11y) y patrones UX
Paletas de color que no dependen de la sensación de color; duplicación de color-forma/patrón.
Alternativas de texto y vista de tabla de datos junto al gráfico.
Trampas de enfoque, orden de corte razonable; escalar sin romper los ejes.
11) Seguridad y privacidad
RLS/CLS a nivel de consulta y de datos de herramientas.
Enmascaramiento/bining para categorías raras para evitar la re-identificación.
Revistas de preguntas NL - PDn-caja fuerte: tokenización/revisión de posibles PII.
Exportar capturas de pantalla/CSV - con marca de agua y metadatos de versión.
12) Economía y valor
Costo-aware: almacenamiento en caché de archivos/resultados, materialización de escaparates «calientes», sampling para preview.
Limitación de solicitudes NL «pesadas» (scan caps), renderizado diferido para series grandes.
Modelos baratos para detección básica + evaluaciones offline pesadas por la noche.
13) Antipatternas
«La lista automática siempre tiene razón». Se necesita una validación de tipos/cardinalidades/lógica de métricas.
Too much ink. 3D/dual-axis complejas sin necesidad de distorsión →.
Sin indicación de incertidumbre. Las letras suenan «categóricas», pero engañosas.
NL→SQL sin capa semántica. Fragilidad y errores de agregación.
Insights mágicos sin referencias a números. Desconfianza y abandono de la herramienta.
14) Hoja de ruta para la aplicación
1. Fundación: capa semántica, glosario de métricas, accesos (RLS/CLS), kits de prueba de NL→SQL.
2. MVP NL→Viz: 10 preguntas principales, tabla de gramática automática, validación de tipos/cardinalidades.
3. Insight Engine: anomalías/breakpoints, prioridades, narrativas básicas con CI.
4. RAG & Trust: conectar metadatos/fórmulas, registro de pruebas en IU.
5. A11y y móvil: tarjetas adaptativas, textos alt, contraste/teclado.
6. FinOps: cachés/materializaciones, límites de escaneo, perfiles de carga.
7. Escala: personalización por roles, patrones NLG scripting, integraciones en CRM/alertas.
15) Lista de verificación antes del lanzamiento
- Las métricas y medidas se describen en la capa semántica; SELECT está prohibido.
- La selección automática de una lista se valida por tipo/cardinalities/reglas.
- Las narrativas contienen números, comparación, base y rango de confianza.
- Se incluyen las bandas de incertidumbre/error-bars (cuando corresponda).
- NL→SQL/DSL pasa las pruebas de referencia; vista SQL visible para el usuario.
- El RLS/CLS y el enmascaramiento funcionan en herramientas/exportaciones.
- A11y: contraste, alt-texts, aprox-navegación, modo daltonismo.
- Caché/materializaciones/límites de escáner configurados; paneles SLO/costo recogidos.
- Registros de versiones de fórmulas/listas; el botón «quejarse de la información privilegiada».
16) Mini plantillas
16. 1 Política de selección automática de gráficos
yaml auto_chart_policy:
time_series: ["line","area"]
categories_max: 8 distribution: ["histogram","boxplot"]
correlation: ["scatter","heatmap"]
choose_log_scale_if: growth_rate>0.15/week small_multiples_if: series_count>6
16. 2 Tarjeta de información privilegiada
yaml insight:
id: "ggr_tr_spike_2025_10_12"
metric: ggr segment: {country: "TR", device: "Android"}
change: {type: "wow", delta_pct: 12.4, ci95: [9.8,14.7]}
drivers: ["Sports +18%", "Slots +7%"]
confidence: 0.86 actions: ["увеличить лимит кампании TR Android на 10%"]
disclaimer: "наблюдение, не доказанная причинность"
16. 3 Ejemplo NL→SQL en IU (retroiluminado)
sql
-- Вопрос: "Как менялся ARPPU по устройствам за 30 дней?"
select dt::date as dt, device_os, avg(revenue_per_payer) as arppu from mart_daily_player where dt >= current_date - interval '30 day'
group by 1,2 order by 1,2;
16. 4 Kit de prueba para NL→Viz
yaml tests:
- ask: "Покажи распределение депозитов за неделю"
expect:
chart: "histogram"
binning: true field: "deposit_amount"
17) Resultado
La AI-visualización de las partidas de nacimiento es no "las estampas inteligentes", y el proceso pasante: la capa semántica → NL→Query → Query→Viz → Insight Engine → explicable narrativy → las acciones y el control de la confianza. Con los guardarrailes correctos (privacidad, verificación de números, incertidumbre, A11y, FinOps), convierte los informes en soluciones operativas, acelera el análisis y eleva la cultura de trabajar con datos en toda la organización.