No es una novedad utilizar IA para apoyar nuestros desarrollos y mucho menos para descripciones cuando tenemos licencia de Fabric. Inclusive en este blog escribimos dos artículos sobre como autocompletar descripciones.
La diferencia de este artículo es que no necesitamos APIs pagas, ni Fabric pago, basta con una IA gratuita en la que confies y la pestaña de TMDL scripting.
No esta demás aclarar porque esto es importante. Lo voy a hacer al principio y no al final. Las descripciones de las medidas son fundamentales para mejorar la semántica del modelo. El código de descriptivo fortalece la mantenibilidad y ayudará a generar mejor documentación automática de cualquier herramienta. En nuestro caso, hemos publicado esta metodología para documentar un modelo publicado en el servicio con SimplePBI.
Para comenzar necesitamos de dos características importantes para la IA que vamos a hacer.
- Seguridad. Si bien la probabilidad de que nuestras medidas tengan datos sensibles es baja, siempre es importante considerar donde estamos ejecutando esto.
- Una IA que permita muchos caracteres de entrada o lectura de un archivo json.
En mi caso voy a utilizar el copilot gratuito de 365 que viene con las organizaciones.
Antes ejecutabamos un Script de C# llamando una IA. Ahora vamos a ir por un ligero cambio de mentalidad. Vamos a obtener información de las medidas en json y lo usaremos de entrada para pedirle a la IA que nos escriba un script de TMDL agregando descripciones.
Comencemos obteniendo nuestro json con la información de medidas. Abrimos la vista de consultas DAX y ejecutamos lo siguiente:
EVALUATE {
TOJSON(
SELECTCOLUMNS(
INFO.VIEW.MEASURES(), “Table”, [Table], “Name”, [Name], “Expression”, [Expression], “DataType”, [DataType]
),-1
)
}
Veremos una devolución algo así:
Copiamos esa celda. La celda tiene la respuesta a una consulta al modelo que pide información de las medidas. Podemos ver en el código las columnas que usaremos para que el LLM pueda interpretar de donde viene, el nombre, código y tipo de datos.
A partir de eso podemos utilizar un prompt como el que les dejo aquí para pedirle a la IA el script de TMDL:
Actúa como un experto en Power BI, Modelado de Datos Avanzado y scripting en TMDL (Tabular Model Definition Language).
Objetivo:
Necesito que generes un script TMDL para actualizar las descripciones de varias medidas en mi modelo semántico a partir de un fragmento de código JSON que te proporcionaré.
Instrucciones:
1. Analiza el JSON: Lee el nombre, la tabla a la que pertenece, el código DAX y el tipo de datos de cada medida.
2. Interpreta la lógica: Analiza el código DAX de cada medida para entender qué calcula exactamente (por ejemplo: variaciones año a año, acumulados, promedios, filtros específicos).
3. Redacta la descripción: Escribe una descripción clara, profesional y concisa (en español) que explique qué hace la medida.
4. Genera el código TMDL: Utiliza la sintaxis correcta de TMDL para modificar la propiedad ‘description’ de la medida dentro de su respectiva tabla.
Formato de salida requerido en TMDL:
Debes agrupar las medidas por su respectiva tabla utilizando la estructura de bloques de TMDL. Por ejemplo:
createOrReplace
ref table ‘NombreDeLaTabla’
/// Aquí va la descripción generada por la IA.
measure ‘NombreMedida1’ = [Código DAX]
/// Aquí va la otra descripción generada.
measure ‘NombreMedida2’ = [Código DAX]
ref table ‘NombreDeLaTabla2’
/// Aquí va la descripción generada por la IA.
measure ‘NombreMedida3’ = [Código DAX]
Reglas estrictas:
- Respeta la indentación por tabulaciones nativa de TMDL.
- No inventes lógica; básate estrictamente en el código DAX provisto.
- Devuelve solo los bloques de código TMDL correspondientes.
Aquí está mi JSON de entrada:
Si pegan el código de json abajo dejen el texto “Aquí está mi json de entrada:”. En caso de que no puedan completar porque la interfaz tiene límite de caracteres. Deberán pegar el texto de la consulta DAX a un editor de texto y guardar como json. Si no los deja guardar como json. Guarden como txt, luego editan el nombre del archivo reemplazando archivo.txt por archivo.json
Adjuntan el archivo y pegan el prompt sin la aclaración del json de entrada.
La IA debería generarles un script que puedan copiar y pegar en Power Bi Desktop o Service.
Revisan si hay alguna tabulación o problema que detecte el motor para corregir. Dependiendo del generador pueden haber pequeñas imperfecciones.
Al terminar dan en Aplicar o Apply:
¡Listo! sin suscripciones pagas de IAs pueden obtener las descripciones para el modelo. Ya no hay excusas para tener los modelos con mejor semántica.