PBIP (Power BI Project): utilisez ChatGPT pour modifier le modèle de données (fichier TMDL) de votre rapport
Jun 25, 2024Copilot pour Power BI, un assistant IA qui peut vous fournir des recommandations et automatiser diverses tâches dans Power BI.
Les fonctionnalités de Copilot ont été mises en évidence dans différentes démos, comme la proposition de pages de rapports, la surveillance des métriques et même l'écriture de DAX.
Nous verrons dans cet article le principal frein à son utilisation, et une solution alternative pour pouvoir utiliser une IA sur un rapport Power BI.
Une contrainte économique
L'utilisation de l'IA de Microsoft présente un inconvénient majeur: certaines fonctionnalités ne sont disponibles qu'avec les capacités F64/P1, dont les prix démarrent à environ 5 000 $ par mois. De plus, ces fonctionnalités ne sont pas accessibles en version d'essai, ce qui limite la possibilité de les tester avant de s'engager dans un contrat coûteux.
Heureusement, une alternative plus économique et accessible existe: l'utilisation du "mode développeur" de Power BI Desktop en conjonction avec un "Large Language Model" (LLM) comme ChatGPT. ChatGPT propose un modèle de paiement à l'utilisation avec un prix de départ de seulement 0,006 $ par token.
Pour mettre en œuvre cette approche, il est nécessaire d'installer l'interface de développement Visual Studio Code (VS Code), de souscrire à un abonnement ChatGPT et de manipuler le rapport Power BI dans un nouveau format, comme expliqué en détail ci-dessous.
Installation, paramétrage et souscription
Cette approche alternative nécessite d'effectuer les actions suivantes :
- Activer la fonction « Stocker le modèle sémantique en utilisant le format TMDL »: Tout d'abord, assurez-vous que la fonction « Stocker le modèle sémantique en utilisant le format TMDL » est activée dans Power BI Desktop sous : Options et paramètres > Options > Fonctions de prévisualisation. (Options and Settings > Options > Preview features).
- Sauvegarder votre rapport en tant que projet Power BI (.pbip)
- S'inscrire à l'API OpenAI et alimenter son compte – seulement 5,00 $ pour cette démo
- Obtenir l'extension CodeGPT pour VS Code
Lorsque vous enregistrez votre rapport en tant que projet Power BI, vous exposez toutes les métadonnées relatives à ce rapport, telles que les tableaux, les mesures, les pages de rapport ou les éléments visuels. Nous pouvons utiliser ces métadonnées pour automatiser un certain nombre de tâches à l'aide de l'IA !
En ce qui concerne le LLM, nous avons deux choix : l'assistant familier de ChatGPT ou l'API. Pour cette démo, nous choisirons la seconde option pour une intégration transparente avec VS Code.
Une fois votre compte enregistré, vous devez l'approvisionner. Pour cette démo, nous avons ajouté 5 $, ce qui est plus que suffisant pour effectuer de nombreux tests.
Vous devrez ensuite créer une clé API comme indiqué ci-dessous. Sauvegardez-la dans un endroit sûr car elle est spécifique à votre compte et vous ne pourrez plus l'obtenir une fois la boîte de dialogue fermée. Vous pouvez facilement en créer une nouvelle si nécessaire.
Sur VS Code, il vous suffit d'installer l'extension CodeGPT :
Une fois que vous l'avez, il vous suffit de sélectionner le serveur comme indiqué ci-dessous et de coller la clé API créée précédemment.
N.B : avant de mettre en œuvre l'une des étapes suivantes, assurez-vous de sauvegarder une copie de votre rapport Power BI pour éviter de perdre votre travail en cas de corruption accidentelle des métadonnées.
N.B : Pour éviter que les réponses ne soient tronquées, veillez à autoriser le nombre maximal de jetons. Cela permet de contrôler le coût maximum potentiel d'une requête, mais en utilisant le modèle Gpt-4o, dans le pire des cas, cela ne représenterait que 0,02 USD, conformément à la tarification.
Une fois ces étapes réalisées, vous pouvez utiliser les fonctionnalités de l'API pour couvrir les cas d'usage expliqués dans la suite de l'article.
Organiser le modèle de données
Supposons que vous avez un modèle de données en désordre ; il devient difficile de distinguer les tables de dimensions des tables de faits et de déterminer comment les relations sont établies.
Grâce à l'IA vous pouvez ordonner le modèle en une seule exécution, en localisant le fichier diagramLayout.json dans le dossier Semantic Model, puis en utilisant l'invite ci-dessous suivie du code json dans le diagramLayout.json:
This code shows all tables on my Power BI data model and their X and Y coordinates. Revise the code to show all Dimension tables (starting with 'd') top aligned, spaced 30px horizontally, and all Fact tables (starting with 'f') 100px below them, also top aligned and spaced 30px. All other tables (not Dimensions or Facts) should be shown separately to the far right.
[Votre code json ici]
L'AI réécrira alors votre code, que vous pourrez remplacer dans le fichier json en cliquant sur « Insert code ».
Si vous sauvegardez le fichier json et redémarrez Power BI Desktop, vous devriez voir que le modèle de données désordonné a été proprement organisé comme demandé !
Affectation de mesures à des dossiers
Imaginons maintenant que vous ayez de nombreuses mesures et qu'elles n'aient pas été organisées de manière cohérente dans des dossiers. Cela peut rapidement devenir un problème lorsque vous essayez de trouver des mesures existantes ou de comprendre d'où elles viennent. L'organisation des mesures dans des dossiers logiques vous facilite grandement la vie, ainsi que celle de vos collègues.
Pour assigner toutes les mesures à un dossier, localisez la table qui contient les mesures, à l'intérieur du dossier SemanticModel -> definition -> tables.
Tapez ensuite l'invite suivante sur CodeGPT :
Revise this TMDL code to assign any measures not inside a display folder to one that already exists. You have to determine which folder to assign the measure to based on what the measure is:
[Votre code ici]
Vous devrez ensuite insérer le code révisé et enregistrer le fichier.
Si vous redémarrez Power BI, vous devriez voir que toutes les mesures ont été organisées !
Formater les mesures
Un autre problème courant avec les indicateurs est que leur format est souvent appliqué de manière incohérente au fil du temps. Nous rencontrons souvent des décimales différentes, des devises mal formatées, des séparateurs de milliers manquants, etc. Ceci arrive souvent lorsque plusieurs développeurs travaillent sur le même projet.
Vous pouvez toujours aller dans la « Vue du modèle » dans Power BI Desktop et sélectionner plusieurs mesures qui peuvent être formatées en une seule fois, mais si vous avez différents critères pour différentes mesures, vous devrez répéter cette opération.
Au lieu de cela, localisons à nouveau la table qui contient les mesures que nous voulons formater dans le dossier SemanticModel -> definition -> tables et saisissons l'invite suivante dans CodeGPT :
Revise the TMDL code below to format all measures as follows:
– monthly revenue as euro, 1 decimal places;
[Votre code ici]
Après avoir remplacé le code et rouvert Power BI, voici le résultat :
Documenter les mesures
L'une des fonctionnalités de Copilot pour Power BI consiste à commenter les mesures et à décrire ce qu'elles font, ce qui peut s'avérer très utile en tant que documentation. Cependant, les démonstrations montrent que nous devons le faire individuellement pour chaque mesure, ce qui peut prendre du temps.
En suivant la même méthode que précédemment, nous pouvons taper l'invite suivante sur CodeGPT :
Revise this TMDL code to add a comment to each measure explaining what it does. In TMLD, a comment is added in the row preceding the 'measure' keyword and starts with '///'
[Votre code ici]
Le résultat est le suivant :
Conclusion
L'intégration de l'IA à Power BI est une combinaison puissante pour documenter vos rapports mais aussi agir sur le modèle de données en le réorganisant, modifier le formats des mesures et les ranger dans des dossiers.
ChatGPT montre une fois de plus qu'il est l'IA préférentiel dans le domaine de la Data. En intégrant les capacités de traitement du langage naturel dans l'IDE CodeGPT, il offre aux développeurs un moyen innovant d'ordonner leur travail de codage et d'augmenter leur productivité. Avec cette mise a jour il est possible d'utiliser l'autocomplétion, la génération intelligente de code, et d'automatiser les tâches ennuyeuses pour pouvoir se concentrer sur les tâches de plus haut niveau.