Probamos IA para desarrollar en PowerBi

El boom de la IA no para de reventar por todas partes y se vuelve imposible no reconsiderar tareas de distintos roles y como puede ser potenciados. No quisimos quedarnos con la teoría y salimos a probar como podríamos combinar desarrollos de power bi con IA.

En este artículo, vamos a ver los resultados que distintas IA distintas nos proveen para resolver algunas tareas involucradas al diseño en Power Bi.

Hoy sabemos que existe Microsoft Fabric Copilot para apoyar la compañía del ecosistema de Fabric en lo que refiere a IA. Disponemos de un copiloto que da soporte en las siguientes areas:

Esperamos que Fabric Copilot desarrolle estas tareas lo mejor posible con el paso del tiempo. Por eso en este artículo vamos a intentar ir por otro camino en el uso de la IA. Intentaremos enfocarnos en tres acciones:

  1. Enviar una imagen de un dashboard y que genere una imagen del tema o fondo.
  2. Enviar una imagen de un dashboard o template y que genere el tema.json o theme.json listo para importar
  3. Pedir que genere en una imagen para utilizar de fondo de páginas de reportes con ciertas características (definir visuales o secciones) y el theme.json
  4. Pedirle que genere una página de ejemplo a partir de lo anterior en archivos sueltos como se descompone PBIR de TMDL

Para realizar el estudio nos enfocamos en tres IA populares. ChatGPT, Copilot común (la gratuita no la de Fabric) y una espacializada en desarrollo que es v0.dev. La imagen con la cual nos nutrimos para hacer las pruebas es la siguiente:


1. Generar fondo para dashboard.

A las tres IAs les enviamos la misma imagen encontrada en un reporte de una documentación de microsoft que tenía un ejemplo de contoso.

  • ChatGPT: se aproxima. Remueve algunas gráficos generando una imagen similar a la real. El problema es que corta la imagen mostrando parte de la plantilla lo que la hace inutilizable.
  • Copilot: la imagen generada no correspondía en absoluto al dashboard. Generó una imagen que tenía un dashboard de ejemplo sobre una mesa que ni siquiera podríamos tomar como si pareciera una captura de pantalla.
  • v0.dev: entendió de forma sólida la imagen y generó un proyecto en typescript como formato web con un tablero similar. El proyecto en el código adicionaba una funcionalidad de exportar para obtener una captura. El problema era que había completado tal cual gráficos y números. Lo cual en una segunda entrada se especificó que la queríamos vacía y ejecutó con éxito el proceso. La contra es que requiere conocimientos de programación para llevarlo a cabo, la ventaja es que podemos modificar cada centímetro.

Resultados destacables

ChatGPT:

v0:


2. Generación de Theme a partir de imagen.

Aquí procedimos de manera semejante. Enviamos una foto de un tablero y solicitamos que genere un tema para importar en power bi.

  • ChatGPT: se limita a colocar 3 colores exactos que ve en pantalla. Luego agrega configuraciones para las visualizaciones en pantalla y una más.
  • Copilot: se limita a colocar 3 colores exactos que ve en pantalla. Luego agrega configuraciones para las visualizaciones en pantalla. No adiciona nada que aporte al tema.
  • v0.dev: define una paleta completa de colores relacionada al tablero. intenta componer los colores para un gran número de visualizaciones y también para el general del tema general de estilos "*".

Evidente destacable ganador fue v0. Pueden probar ustedes con las imágenes la generación de temas.

3. Pedir generación de fondo para informe y tema

En este caso de ejemplos de generación de fondos y temas tuvimos respuesta similar en los temas. Se repitieron patrones siendo v0.dev el más completo para generar el archivo json que importaremos en Power Bi. Aclaro que aqui aparecieron errores en la generación de jsons pero con otro prompt especificando los errores, los motores fueron capaces de dar una versión válida.

ChatGPT: generación de informe muy básica con poco diseño. Generó lo justo y necesario con ejemplos de que gráficos utilizar. Esto último es molesto porque hay que editarlo y borrarlo manualmente.

Copilot: tuvo el mismo problema en la generación de imágenes puesto que generó la imagen de un tablero sobre una mesa que no correspondía a un ejemplo como una captura para utilizar en un tablero.

v0.dev: de forma similar a la anterior generó un proyecto en typescript y el informe tenía datos. Le pedimos que los quite y le preguntamos porque generaba en tsx. El motor respondió quitando los nros y generando un html que nos permitía descargar un png del fondo. El ejemplo que dio es en mi opinión el atractivo.

Resultados destacables:

ChatGPT:

v0:

4. Generación de archivos para informe TMDL y PBIR

Aquí pienso que está la idea más fuerte en la participación de la IA. Al realizar el pedido de generación de informe, se incorporaba la estructura del modelo semántico aclarando tablas, columnas y medidas.

  • ChatGPT: a la primera iteración parecía entenderlo todo. Sin embargo, el zip descargado estaba totalmente vacío. Se aclaró sobre esto y generó otro archivo. El zip tenía mal la estructura y era imposible mapearla como realmente funciona. Intentamos seguir explicando y llegamos al límite gratuito porque no había consenso. Detuvimos la prueba porque eran demasiadas iteraciones y no estaba entendiendo.
  • Copilot: tuvimos unos prompt más repasando conceptos de TMDL y PBIR porque confundió la estructura. Creó los archivos y entregó en zip y tar.gz. No pudiendo descomprimirlos y pidiendo nuevamente, se le solicito que muestre el contenido en json y lo creamos a mano. El resultado no fue el esperado. La estructura de los archivos json estaban llenos de errores, era imposible consolidar que Desktop abra el archivo.
  • v0.dev: luego del pedido generó los archivos y permitió la descarga en zip. Los archivos contenían errores por falta de una delimitación de $schema (parámetro necesario en los jsons). Una vez que se agregaron cargó el informe de power bi pero no había nada generado. Los archivos de visuales y fondos no estaban bien generados.

Conclusiones

Estamos en un estadía donde las herramientas de IA pueden ser guías para nosotros pero no ejecutar una tarea que nos facilite la producción. Podría decir que pocas son las pruebas que resultaron positivas. Destaco a v0 en la creación del template porque podríamos editarlo por código y en la generación del json porque era el más completo. Probablemente, GitHub Copilot sea una gran opción como v0. Éstas son las operaciones que una IA nos permitiría apoyarnos hoy separándonos de lo que presenta Fabric Copilot y enunciamos al inicio del artículo.

Seguramente, podríamos utilizarlas para ayudarnos en códigos DAX. Crear tablas fechas. Hay muchos videos y artículos utilizándola para eso. También son excelentes para recomendar sobre páginas y tableros describiendo como lo harían en texto. Lo más atractivo es la generación de informes aunque está más lejos de ser generada como esperamos. Si bien Fabric Copilot cuenta con generación de reportes, podrán ver en los videos que suele ser bastante repetitiva en la creación de página de prueba, lo cual no es lo que esperaríamos de una IA que cree tableros.

Para que realmente exista un cambio, esto sucederá con MCP (Model context protocol). Algunas personas ya están configurando servidores con este protocolo y los resultados llegan un poco más a los resultados esperados.

Espero que les haya parecido interesante y ojalá nos comenten contándonos si hubieran probado otra cosa o si utilizan otra IA para acompañar sus tableros. Recuerden nunca usar datos sensibles para mostrarselos a IAs gratuitas, sino metadatos o esquemas para fortalecer sus desarrollos.