Si, comme moi, ouvrir votre boîte emails peut ressembler à ouvrir la boîte de Pandore 📬, j’ai une solution pour vous !
Découvrez comment mettre de l’intelligence 🧠 dans le traitement automatisé de vos emails, à l’aide d’AI Builder, des prompts Chat GPT et de Power Automate.
🔍 Je vous montre via mon cas d’usage comment j’ai réussi à filtrer rapidement les questions urgentes ou importantes des questions basiques, ou des emails ne nécessitant aucune action de ma part.
Cela permet de gagner un temps précieux ⏳
Prêt(e) à transformer le chaos de votre boîte emails en havre de paix ? Lisez alors ce qui suit 👀.
Qu’est-ce que AI Builder ?
Avant de démarrer, précisons que AI Builder est une fonctionnalité de Microsoft Power Platform, vous permettant de créer et d’utiliser des modèles d’intelligence artificielle pour optimiser vos processus métier.
AI Builder était basé sur des modèles de machine learning pré-entrainés, que l’on peut également entrainer avec ses propres données.
Depuis fin 2023, la fonctionnalité de génération de texte avec GPT a été ajoutée et l’on peut maintenant utiliser le modèle Open AI GPT et créer ses propres invites IA pour pouvoir les réutiliser dans des flux Power Automate.
Version 1 – Classification d’email à l’aide d’AI Builder
Comme nous sommes intelligents 💡(ou faignants, ou les deux), regardons d’abord si ce qu’on veut faire existe déjà, et auquel cas si on peut réutiliser un modèle existant moyennant quelques adaptations.
Pour cela, faisons une recherche sur le mot clé « AI Builder » dans les modèles de Power Automate :
Bingo ! Prenons le template Analyser les courriers électroniques entrants et les acheminer à la bonne personne de Microsoft et testons-le. Ce template utilise un modèle pré-défini « Texte Classification » de AI Builder.
Etapes du flux
Modifions les étapes
- Au niveau du déclencheur Outlook (premier élément en partant du haut), changez carrément de déclencheur si vous n’utilisez par Outlook (par exemple Gmail). L’idée est d’avoir un déclencheur similaire pour votre boîte email, dès qu’un nouvel email arrive donc.
Pour ma part, je l’ai remplacé par celui-là, car j’utilise une boite emails partagée :
Ensuite, renseignez les paramètres du déclencheur : Dossier de réception, champs Destinataire “A”, Expéditeur “De”, “Objet”, etc. :
2. A l’étape Convertir HMTL en texte, modifiez si nécessaire le contenu, reprenez le corps de texte de l’email.
3. Categorize text : Le modèle d’IA de classification de texte. Changez la langue. Vous recevez des emails dans plusieurs langues ? Pas grave, il va juste falloir insérer avant cette étape, une étape de détection de la langue de l’email (non traité ici).
4. Choose what categories to route : Modifiez les catégories dans chaque branche parallèle. Puis ajoutez des actions à réaliser.
Note : Le problème à ce stade est qu’on ne maîtrise pas du tout les catégories trouvées par le modèle… ça s’annonce mal pour la suite.
Bref, ensuite j’ai modifié l’action Envoyer un email, en indiquant le nom de l’expéditeur, l’objet et le message à traiter.
On peut imaginer des scénario plus complexes (notification Teams, flux d’approbation, sauvegarde des pièces jointes, etc.)
5. Enregistrez le flux.
Testons le flux
Pour ma part ce n’est pas concluant, la demande URGENTE est traduite en “Compliment” 😂… Mais on pouvait s’y attendre un peu car avec le modèle IA proposé dans ce template nous n’avons pas la main sur la catégorisation.
Ce n’est pas grave, essayons un autre modèle.
Version 2 – Classification d’email à l’aide d’un prompt
L’étape que nous utilisons dans ce flux pour classer les e-mails est l’action Créer du texte avec GPT.
L’avantage de cette action est que vous utilisez littéralement le modèle OpenAI GPT, sans avoir besoin de déployer Azure OpenAI ou coder quoi que ce soit.
Créer du texte avec GPT
- Remplacez l’étape de Catégorisation de texte précédente par une nouvelle action AI Builder, sélectionnez Créer du texte avec GPT à l’aide d’une invite (prompt) :
2. Nous allons créer l’invite, sélectionnez invite personnalisée, puis nous allons utiliser un modèle existant “Classer le texte”. Voici l’invite prédéfinie:
Classez le/la texte d’entrée dans l’un des Catégories d’entrée , ou « imprécis ». Analysez les thèmes principaux et le contexte du texte fourni et classez-le dans la catégorie la plus appropriée dans la liste des catégories. Prenez en compte toutes les sous-catégories, la terminologie spécifique au secteur et la possibilité d’une classification ambiguë. Si le texte ne correspond pas clairement à une seule catégorie, sélectionnez la catégorie la plus proche ou marquez-le comme étant « imprécis ». Votre réponse ne peut contenir que le texte exact de la catégorie la plus proche. N’expliquez et n’utilisez pas les catégories non répertoriées.
Donnez-lui un nom, ne modifiez rien d’autre. Enregistrez votre invite IA.
3. Ajoutons nos propres catégories dans l’étape, le modèle se débrouillera pour classer le texte dans la catégorie la plus proche sinon le marquera en “imprécis”.
Modifions le flux
4. A l’étape suivante, supprimons la boucle Apply for each du flux. C’était utilisé dans le template de Microsoft, certainement pour gérer la classification dans plusieurs catégories.
Pour cela, avant de supprimer la boucle, il faut copier ce qu’il y a à l’intérieur. L’astuce ici est de retourner en mode concepteur classique et copier les étapes internes dans le presse-papier :
Ensuite, insérons une nouvelle étape dans le flux et collons le contenu du presse-papier :
5. N’oublions pas de modifier les branches parallèles pour chaque catégorie que nous avons définie dans le modèle :
6. Enregistrez le flux.
Testons le flux
Si les résultats vous conviennent après avoir testé la détection de toutes vos catégories, vous pourriez vous arrêter là.
De mon côté, n’ayant pas eu de résultat probant, j’ai décidé d’optimiser le prompt initial en l’adaptant à mon besoin précis.
Version 3 – Classification d’email à l’aide d’un prompt avancé
Au lieu du prompt initial, nous allons créer une invite très détaillée pour dire au modèle comment nous souhaitons classer les e-mails.
Prompt Engineering
A titre d’exemple, mon modèle produira les résultats suivants :
- Archiver – pour les e-mails qui ne nécessitent pas de suivi
- Réponse automatique – pour les e-mails générés par des services auxquel je suis abonné, d’éventuels spams. Ces e-mails peuvent être supprimé en toute sécurité.
- Question diverse – pour les e-mails contenant une question à laquelle une FAQ ou un chatbot pourrait répondre facilement
- Question importante – pour les e-mails nécessitant un suivi personnalisé
- Urgent – pour les e-mails urgents ou de réclamation
Ensuite, nous fournissons quelques exemples pour chaque catégorie, C’est ce qu’on appelle la technique du Few Shot Learning dans le prompt engineering.
A noter que nous n’avons besoin plus que d’une seule entrée pour le modèle, puisque les catégories sont définies en dur dans le prompt :
Exemple de prompt de classification :
Classify the input text texte d’entrée into one of the categories defined below, or the “Archiver” category. Analyze the main themes and context of the text provided and classify it into the most appropriate category. Consider any subcategories, industry-specific terminology, and the possibility of ambiguous classification.Here are the definitions for each category with examples:
If the text does not clearly fit into a single category, select the closest category or mark it as “Archiver”. The response can only contain the exact text of the closest category among the mentionned categories: ‘Urgent’, ‘Important’, ‘Divers’, ‘Automatique’, ‘Archiver’. |
Notez que j’ai rédigé mon prompt en anglais, car j’ai eu de meilleurs résultats de classification qu’en français.
Modifions le flux
A titre d’exemple, voici mon flux final intègrant des actions spécifiques pour chaque catégorie de texte, comme vous pouvez le voir ci-dessous :
Structure du flux :
- Nous avons commencé avec le déclencheur d’arrivée d’un nouvel e-mail, en le transmettant au modèle GPT pour effectuer la classification.
- Ensuite, nous avons initialisé la sortie de GPT et l’avons converti en chaîne afin de pouvoir l’utiliser à l’étape suivante.
- En fonction de la réponse, nous avons utilisé un Switch pour diriger le flux vers différentes actions, par exemple transférer l’email au service concerné ou publier une notification dans Teams.
Optimisation du flux
Voici des étapes que nous pouvons mettre en œuvre, afin d’optimiser l’efficacité du flux et les coûts :
- Pré-traitement des emails via une règle Outlook (déplacement dans un dossier, filtres sur l’objet,sur l’expéditeur, etc..)
- Supprimer les balises HTML (déjà inclue dans le flux)
- Concaténer l’objet et le corps d’email avant d’analyser le texte, car l’objet contient aussi des informations utiles
- Ajouter une limite du nombre de caractères à analyser, par exemple 1000 caractères
- Générer des réponses automatiques avec GPT, comme un chatbot
Exemple de prompt de génération de réponse :
Generate a simple, concise answer to the following Text message Texte.
Rules to answer are:
|
Bien sûr, il serait préférable d’approuver personnellement la réponse avant de l’envoyer. C’est d’ailleurs ce que recommande Microsoft après l’ajout d’une action de génération de texte avec GPT :
Testons le flux
Voici à titre d’illustration, les résultats de mes tests avec le prompt amélioré.
Je suis assez satisfait, à part pour l’email Important qui a été catégorisé et traité comme une question diverse.
Quelques précisions supplémentaires dans le prompt permettront certainement d’augmenter le taux de succès.
Type d’email envoyé | Résultat du traitement automatique – Email d’origine et résultat du traitement (ici réponse automatique) |
|
Catégorie Urgent | Résultat : Urgent ✅
|
|
Catégorie Important | Résultat : Divers ❌ | |
Catégorie Divers | Résultat : Divers ✅ |
Limitations
Le coût actuel d’AI Builder peut être (très) dissuasif, surtout pour une petite entreprise.
AI Builder fonctionne avec des crédits, un certain nombre de crédits étant fourni par type de licence :
Microsoft propose un calculateur de coût AI Builder. et donne des exemples de consommation de crédit.
En faisant mes tests, chaque email traité utilisait environ 1000 tokens.
Donc, si j’ai 50 e-mails à traiter par jour, cela représente 1000 x 50 x 30 = 1 500 000 tokens par mois. D’après le tableau du dessus, je dois donc acheter 2 unités AI Builder, soit💲1000 / mois… Ouch !
Pour éviter ce coût exorbitant, il y a une alternative à essayer : au lieu d’utiliser AI Builder dans le flux, appeler l’API d’Open AI.
J’ai vu des personnes le faire avec l’outil d’automatisation Make. Reste à comparer les coûts.
Attention : car cette solution enverra des données potentiellement confidentielles à Chat GPT, contrairement à la solution Microsoft décrite dans l’article ⚠️
Version 4 – Classification d’email à l’aide de l’API Open AI
A suivre…
Conclusion
En mettant en œuvre ce flux, vous pouvez réduire considérablement le temps passé à répondre à vos e-mails.
Avec les fonctionnalités OpenAI GPT de plus en plus populaires, notre imagination est la seule limite.
L’usage de modèles linguistiques à grande échelle (LLM), tels que Chat GPT, peut révolutionner la manière dont nous interagissons avec les données et les informations. Cependant, il est crucial de comprendre que ces modèles fournissent les meilleurs résultats lorsqu’ils sont guidés par des instructions précises.
Cependant, il est important de ne jamais prendre de décisions importantes uniquement sur la base des suggestions de l’IA. C’est pourquoi, lorsque vous enregistrez le flux, Power Automate vous alerte si vous n’avez pas intégré d’étape d’approbation humaine.
En résumé
Nous avons vu dans cet article :
✅ Comment utiliser un modèle AI Builder pré-défini pour la classification d’emails
✅ Comment utiliser les prompts GPT pour un meilleur résultat sur la classification
✅ Comment optimiser le flux Power Automate
🟥 Quelles autres tâches pourriez-vous optimiser avec AI Builder et Power Automate ?
🟥 Quel impact une telle transformation pourrait-elle avoir sur la productivité et l’innovation dans votre organisation ?
N’hésitez pas à laisser vos idées en commentaires 👏