Cómo crear filtros conversacionales en el Copilot de Power BI
Aprende a crear filtros conversacionales en el Copilot de Power BI para que los usuarios puedan filtrar informes usando lenguaje natural. Esto es útil para hacer los informes más accesibles y reducir la necesidad de crear múltiples slicers manuales. Con una implementación simple puedes permitir que una pregunta como "Mostrar receitas no Norte no último trimestre" aplique automáticamente filtros en los visuales y presente resultados coherentes.
Requisitos previos
- Cuenta con licencia que incluya Copilot en Power BI y acceso al informe a editar. Confirma que tienes permisos de edición en el workspace donde el informe esté publicado.
- Informe Power BI (.pbix) publicado en un workspace con OneLake/Power BI Service. Idealmente el modelo está actualizado y con refresh automático configurado (ej.: refresh diario).
- Modelo de datos con columnas bien definidas (ej.: Producto, Región, Fecha). Las columnas clave deben tener datos limpios: por ejemplo, Region con menos de 50 valores únicos facilita el mapeo.
Paso 1: Identificar campos que deben ser filtrables por lenguaje natural
Elige qué campos los usuarios normalmente preguntarán en lenguaje natural (ej.: Categoría, Región, Segmento). Crea una lista corta para comenzar: muchos filtros complejos hacen que la experiencia sea confusa. Por ejemplo, identifica 3 a 5 campos críticos (Region, ProductCategory, SalesChannel). Si tu modelo tiene 200 columnas, céntrate en las 10 más usadas en los informes: estas normalmente aportan el 80% de las interacciones.
Paso 2: Crear tablas de mapeo de sinónimos en el modelo
Para que el Copilot entienda variaciones (ej.: "vendas na zona norte", "Norte", "Zona Norte"), crea una tabla simple en Power BI con sinónimos. Esta tabla permite mapear términos libres a valores canónicos y reduce errores de interpretación. Puedes mantener esta tabla pequeña (100–500 filas) y ampliarla según el feedback.
// Exemplo de tabela Synonyms criada em Power Query (M)
let
Source = Table.FromRecords({
[Canonical="Norte", Synonym="Norte"],
[Canonical="Norte", Synonym="Zona Norte"],
[Canonical="Norte", Synonym="N."],
[Canonical="Sul", Synonym="Sul"],
[Canonical="Sul", Synonym="Zona Sul"]
}),
Renamed = Table.RenameColumns(Source,{{"Canonical","RegionCanonical"},{"Synonym","RegionSynonym"}})
in
Renamed
Ejemplo práctico: si tu informe cubre 4 regiones (Norte, Centro, Sur, Islas), la tabla puede tener 12–20 sinónimos para capturar abreviaturas, nombres locales y errores comunes.
Paso 3: Relacionar la tabla de sinónimos con la dimensión principal
Crea una relación entre la columna canónica de la tabla de sinónimos y la dimensión Región en el modelo. Usa relación Many-to-One (muchos sinónimos → 1 región) para que el filtrado funcione correctamente. Configura la dirección del filtro para que el contexto fluya de la dimensión principal hacia las tablas factuales; típicamente la relación es Single direction y activa.
Paso 4: Exponer metadatos y descripciones útiles para el Copilot
Añade descripciones a las columnas importantes (Model view -> Column tools -> Description). Explica términos y sinónimos para que el Copilot sepa interpretar intenciones como "faturação" = "Revenue". Por ejemplo, en la columna Revenue coloca la descripción "Faturación en euros, deducidas devoluciones". Estas descripciones ayudan al Copilot a mapear lenguaje natural a campos técnicos y reducen ambigüedades cuando existen campos con nombres similares.
Paso 5: Crear measures de apoyo para filtrado conversacional
Crea una measure que devuelva valores cuando se aplica un filtro conversacional. Esto ayuda al Copilot a saber que se seleccionó una región a partir del mapeo de sinónimos. Las measures también pueden proporcionar contexto en tarjetas y títulos dinámicos.
// Exemplo DAX: SelectedRegionName
SelectedRegionName =
VAR sel = SELECTEDVALUE('Region'[RegionName])
RETURN IF(NOT(ISBLANK(sel)), sel, "Todas")
Puedes complementar con una measure que cuente ocurrencias o que muestre un resumen rápido, por ejemplo: "TotalRevenueSelected" que muestre el total filtrado por las entradas conversacionales. Estas measures ayudan al usuario a confirmar que el filtro fue aplicado (por ejemplo, muestra "Norte — €1.2M" en el título del informe).
Paso 6: Probar prompts en el Copilot con ejemplos prácticos
Abre el Copilot en el Power BI Service y prueba prompts como: "Mostrar receitas no Norte no último trimestre" o "Filtra por Zona Norte". Observa si el Copilot aplica el filtro correcto y utiliza la measure para presentar contexto. Prueba variaciones: con y sin acentos, con abreviaturas y frases completas. Por ejemplo:
- "Receita Norte Q2"
- "Mostrar vendas N."
- "Filtra por Zona Sul e por Produto = 'A'"
Paso 7: Ajustar mapeos y entrenar con ejemplos
Registra las frases que los usuarios más usan y añádelas a la tabla de sinónimos. Si el Copilot interpreta mal, añade descripciones o amplía la tabla. Esto es iteración: más ejemplos mejoran la precisión. Idealmente recopila 50–200 ejemplos reales en el primer mes y ajusta el diccionario. Mantén un proceso de revisión mensual para añadir nuevos sinónimos y eliminar ambigüedades.
Verificar el resultado
Confirma que el Copilot aplica correctamente los filtros solicitados por lenguaje natural: pide varias variaciones (ej.: "vendas Norte", "zona norte", "N.") y verifica que los visuales se actualizan y que la measure SelectedRegionName muestra el valor esperado. Rendimiento: valida que las queries no vuelvan lento el informe; si es necesario optimiza relaciones o las queries en Power Query.
Conclusión
Al crear tablas de sinónimos, añadir descripciones y crear measures de apoyo, transformas el Copilot en Power BI en una herramienta de filtrado por lenguaje natural más robusta. Próximos pasos: automatizar la importación de sinónimos desde un archivo o integrar feedback de los usuarios para ampliar el diccionario. Consejo: empieza con pocas entidades críticas y expande conforme recibas errores comunes o peticiones repetidas. Con iteración regular, puedes reducir en 30–50% las preguntas mal interpretadas y aumentar la satisfacción de los usuarios.