Faire du SASS avec Blazor

Avec l’isolation du CSS qui est disponible depuis .NET5, appliquer des styles à nos composantes Blazor n’a jamais été aussi simple. Saviez-vous qu’on peut facilement le faire en SASS, profiter de la puissance de ce préprocesseur, et ne pas avoir à se soucier de faire nous-même la compilation vers le CSS? Voici le petit truc bien simple pour vous permettre de le faire.

Continuer la lecture de « Faire du SASS avec Blazor »

C# 10 – Global Using

J’ai récemment eu la chance de démarrer un nouveau projet sur lequel nous utilisons .NET6 et C#10. J’ai donc pu commencer à mettre en pratique quelques-unes des nouvelles possibilités qui s’offrent à nous. Dans cet article, je voulais exposer l’utilisation des global using de C# 10, qui va à mon avis grandement aider pour la lisibilité de notre code.

Continuer la lecture de « C# 10 – Global Using »

Démarrer un build Azure par l’API

Saviez-vous qu’il est possible de démarrer un build Azure par l’API? Ce n’est pas quelque chose qu’on a besoin à tous les jours, mais de savoir que ça existe, et qu’on a beaucoup de possibilités avec les APIs d’Azure, peut nous faciliter la vie le moment venu.

Continuer la lecture de « Démarrer un build Azure par l’API »

MVP Challenge Azure Data & AI – Vidéo

Le MVP Challenge Azure Data & AI est maintenant derrière moi, avec plusieurs apprentissages, une certification et quelques articles sur le sujet. Voici donc un vidéo du Bracket Show dans lequel nous avons survolé quelques-unes des fonctionnalités que j’ai eu la chance d’apprendre pendant ce mois.

Continuer la lecture de « MVP Challenge Azure Data & AI – Vidéo »

MVP Challenge Azure Data & AI – Partie 5

Dernière semaine du MVP Challenge Data & AI. Pour finir le tout en beauté, j’ai eu la chance de revenir sur les API d’analyse de texte, j’ai découvert la solution de recherche cognitive d’Azure, j’ai construit des bots et finalement j’ai fait un survol de plusieurs aspects entourant l’accessibilité. Voici mes découvertes, bonne lecture!

La première partie est disponible ici: Partie 1
La deuxième partie est disponible ici: Partie 2
La troisième partie est disponible ici: Partie 3
La quatrième partie est disponible ici: Partie 4

Reconnaissance d’entités

La reconnaissance d’entités, qui fait parti de l’API Text Analytics, nous permet d’extraire une liste d’entités ou d’items que le service reconnait, pouvant même nous retourner des liens sur ces entités si possible (par exemple un lien vers la page de Wikipedia). Comme cet API est déjà en place, tout ce qu’on a à faire une fois qu’on a notre ressource Azure pour les services cognitifs, c’est de l’appeler. Si on utilise le SDK déjà disponible pour C#, un appel à ce service sera aussi simple que ces quelques lignes (avec quelques instructions en amont pour initialiser le client):

L’API est fait pour recevoir du JSON en paramètre, chose que le SDK s’occupe de faire pour nous à l’utilisation. Dans l’exemple ci-haut, le résultat nous donnerait une liste contenant entre autre « Microsoft » et « Bill Gates ».

Dans le même genre, il existe aussi des APIs et SDK qui nous permettent d’extraire les phrases clé d’un texte ou encore de détecter la langue à partir du texte reçu. Pour ce qui est de la détection de langue, on peut très bien imaginer l’utilisation avec un bot qui doit savoir dans quelle langue une personne s’y adresse pour être en mesure de lui répondre la bonne chose, dans la bonne langue.

Azure Cognitive Search

La recherche cognitive est un outil qui nous permet de se construire une solution d’indexage et de requête à partir de plusieurs sources de données pour avoir une solution de recherche à grande échelle. En d’autres mots, on peut prendre plusieurs sources de données, en extraire ce dont on a besoin pour de la recherche et le préserver dans un index qui sera représenté sous forme de documents JSON et donc très facile à rechercher.

Contrairement à une recherche « classique », cette recherche permet d’utiliser les services cognitifs pour nous retourner des résultats en fonction de la pertinence de ceux-ci et non uniquement sur le fait que la valeur recherchée est retrouvée dans un champ. On peut même y ajouter un suggester, qui va permettre les suggestions pendant qu’on écrit et l’auto-complétion.

Pour configurer un service de recherche, on peut passer par l’interface web d’Azure ou même y aller directement via le code. Personnellement, j’ai trouvé que l’interface web était plus simple pour apprendre sur le sujet, qui peut être relativement imposant lorsqu’on ne sait pas tout ce que cela permet.

Les bots

Alors que j’avais vu brièvement comment créer un bot, cette fois c’est dans la construction que j’ai eu la chance d’apprendre. J’ai tout d’abord exploré le Bot Framework SDK, qui permet de créer un bot via un projet en C#. Essentiellement, il faut faire un override des méthodes qu’on veut redéfinir le comportement. Par exemple, cette méthode qui permet de répondre quelle heure il est lorsque une question avec le mot time est inscrite:

L’autre manière de créer un bot est avec l’aide du Bot Framework Composer. Cet outil, qu’on doit installer localement sur notre ordinateur, nous permet de composer les différents dialogues grâce à une interface où on ajoute différentes actions, questions ou réactions à prendre selon ce qui a été entré par l’utilisateur. Pour donner un léger aperçu, voici une partie d’un bot que j’ai créé avec le menu pour ajouter une question:

Accessibilité

L’accessibilité est au coeur de beaucoup des services d’intelligence artificielle. Une phrase qui m’a beaucoup raisonné en tête en faisant les apprentissages disait que lorsqu’on ne considère pas l’accessibilité, nous avons le pouvoir d’exclure des gens. Ceci devrait donc être au coeur de nos préoccupations en tant que développeur, de manière hâtive dans nos projets plutôt qu’à la fin, souvent fait à moitié.

Dans ces quelques modules, j’ai entre autre appris l’existance du Accessibility Insights, qui permet de détecter les problèmes d’accessibilité sur nos applications, autant mobile, web et de bureau. Du côté de la suite Office, une chose que je ne connaissais pas est au niveau de PowerPoint, où on peut utiliser un Presenter Coach qui est un service utilisant l’AI pour nous donner du feedback sur notre présentation et nous offrir des recommandations. On retrouve aussi dans la majorité des produits des outils qui peuvent nous aider à identifier et corriger les problèmes d’accessibilité, comme par exemple un texte alternatif manquant sur une image d’un courriel.

Conclusion

Le mois de mai fût pour moi extrèmement chargé en apprentissages, avec un examen pour une certification et un autre (Azure AI-102) que je vais continuer de me préparer dans les prochaines semaines, car il est à mon avis un peu plus difficile que le AI-900. Je vous remets les liens vers mes collections de module d’apprentissages, qui ont été bonifiées avec certains modules de ma dernière semaine. Je suis aussi en préparation d’un épisode du Bracket Show pour une démonstration de certaines des choses que j’ai vu pendant le mois.

Si vous avez des commentaires ou des questions sur tous ces apprentissages, ou sur les certifications s’y rattachant, n’hésitez surtout pas à me laisser savoir dans les commentaires.

Collection sur le Data & AI: Voir la collection
Collection sur le Machine Learning: Voir la collection
Collection sur l’analyse d’images: Voir la collection
Collection sur l’analyse de mots: Voir la collection

Bruno

MVP Challenge

La première partie est disponible ici: Partie 1
La deuxième partie est disponible ici: Partie 2
La troisième partie est disponible ici: Partie 3
La quatrième partie est disponible ici: Partie 4

MVP Challenge Azure Data & AI – Partie 4

Cette semaine, après avoir vu les bases de l’intelligence artificielle, le MVP Challenge m’a amené sur un terrain un peu plus avancé du Data & AI par rapport à différents services cognitifs qu’on peut utiliser via Azure. Voici un résumé de ce que j’ai appris!

La première partie est disponible ici: Partie 1
La deuxième partie est disponible ici: Partie 2
La troisième partie est disponible ici: Partie 3
La quatrième partie: vous êtes ici
La cinquième partie est disponible ici: Partie 5

Azure Content Moderator

Le tout a commencé par un service que je n’avais pas encore vu, qui permet la modération d’images, de textes et de vidéos, assisté par l’AI évidemment. Ce service permet de détecter des items profanes ou explicites par exemple et peut même nous retourner une classification sur les éléments explicites, nous indiquant si on devrait faire une revue du contenu. Dans un monde où la main-d’oeuvre est souvent débordée, ce genre de service peut venir alléger la tâche des gens pour uniquement faire de la modération sur ce qui est jugé offensant. Comme tout est utilisable via un API, c’est plutôt simple à mettre en place, un exemple très complet pour l’essayer est d’ailleurs disponible ici.

Analyse de sentiments

Une autre belle découverte, l’analyse de sentiments grâce à l’API Text Analytics. J’avais vu brièvement dans une leçon précédante le fonctionnement de ceci, mais cette fois-ci je l’ai vu dans un exemple beaucoup plus concrèt. J’ai vu comment mettre un système de queues en places avec le Azure Queue Storage et avec une Azure Function pour recevoir des messages, déterminer s’ils sont positifs, négatifs ou neutres, puis transférer selon le résultat dans la bonne file du Queue Storage.

Speech Service

Encore une fois quelque chose que j’avais vu plus tôt dans le mois, mais plus concrètement en utilisant différents APIs pour consommer les services. Dans la conversion de l’audio à du texte, comme dans la traduction, l’utilisation de l’API est sensiblement la même. On construit l’objet qu’on a besoin (un SpeechRecognizer pour faire du speech-to-text par exemple) à partir d’un SpeechConfig pour se connecter au service sur Azure, d’un AudioConfig pour choisir un fichier audio au lieu du micro par exemple, puis il ne reste qu’à consommer le résultat de la méthode utilisée, qui s’occupe d’appeler le service cognitif qui fait le travail.

Analyse d’images et vidéos

Je suis aussi retourné dans l’analyse d’images sur différents aspects, entre autre avec le Face API. De voir que l’utilisation peut se faire grâce à des SDK rend l’utilisation beaucoup plus facilement approchable. Par exemple, ces quelques lignes de code permettent de détecter les émotions, les lunettes, les sourires ainsi que les différents points d’identifications (landmarks) sur une image:

L’analyse de vidéo est quelque chose que je n’avais pas encore vu et qui regroupe beaucoup des concepts des services cognitifs. En résumé, le service Azure Video Indexer permet de prendre des vidéos et d’en extraire des scènes, des identifications de visages, de la reconnaissance de texte, et même de la transcription et de l’analyse d’émotions dans l’audio. Au final, on se retrouve avec une tonne d’information qui nous permettrait par exemple de faire de la recherche sur des vidéos selon le contenu de ceux-ci.

Language Understanding

De ce côté, j’ai eu la chance de voir quelques concepts de plus que ce que j’avais écrit la semaine dernière. Par exemple, il existe des domaines pré-construits qu’on peut ajouter à nos projets LUIS avec quelques cliques, qui vont s’occuper d’ajouter uen grande sélection d’intentions et d’entités à notre modèle sans que nous ayons à le faire nous-même.

J’ai aussi vu qu’il était facile d’exporter une application LUIS vers un docker, avec une option disponible directement dans le menu d’export. Une chose importante à savoir avec ceci par contre est qu’il y a certaines limitations à déployer une application LUIS dans un conteneur, qui sont toutes répertoriées dans la documentation.

Conclusion

Cette semaine fût beaucoup plus chargée en terme d’utilisation des différents APIs, mais extrêmement intéressante parce qu’au-delà de comprendre les concepts vus dans les dernières semaines, j’ai pu voir la simplicité d’utilisation avec les différents SDK disponibles. Je n’ai pas de nouvelle collection d’apprentissage cette semaine, j’ai plutôt mis à jour ceux que j’avais déjà, donc le mieux pour voir les éléments ajoutés serait de les consulter:

Collection sur le Data & AI: Voir la collection
Collection sur le Machine Learning: Voir la collection
Collection sur l’analyse d’images: Voir la collection
Collection sur l’analyse de mots: Voir la collection

Bruno

MVP CHALLENGE

La première partie est disponible ici: Partie 1
La deuxième partie est disponible ici: Partie 2
La troisième partie est disponible ici: Partie 3
La quatrième partie: vous êtes ici
La cinquième partie est disponible ici: Partie 5

MVP Challenge Azure Data & AI – Partie 3

Cela fait maintenant deux semaines que j’ai débuté le MVP Challenge Azure Data & AI. Après avoir exploré le machine learning et l’analyse d’images, la dernière semaine était plutôt en lien avec l’analyse de textes, de la parole, de compréhension de langage naturel et de construction de bot pour de l’aide en ligne. Encore une fois, voici un résumé de ce que j’ai appris au cours de la dernière semaine.

La première partie est disponible ici: Partie 1
La deuxième partie est disponible ici: Partie 2
La troisième partie: vous êtes ici
La quatrième partie est disponible ici: Partie 4
La cinquième partie est disponible ici: Partie 5

Analyse de texte

Tout d’abord, ce qu’est l’analyse de texte. C’est un processus qui fait qu’un algorithme d’intelligence artificielle évalue les attributs d’un texte pour en ressortir certaines informations. Comme les analyses de textes sont rendus très évolués, c’est-à-dire qu’ils sont capables de comprendre selon la sémantique des mots, et non juste une traduction mot à mot, il est généralement mieux d’utiliser des services comme le Text Analytics sur Azure plutôt que de le programmer nous-même, surtout considérant qu’il s’agit uniquement de créer la ressource sur Azure puis de se servir du endpoint exposé.

Grâce à ce genre d’analyse, on peut déterminer la langue d’un texte, mais aussi des choses plus évoluées comme la détection de sentiment dans un texte. Ce genre d’analyse pourrait par exemple permettre de déterminer si une critique est positive ou négative sur un site transactionnel et même nous permettre de réagir plus promptement. On serait aussi en mesure d’extraire les points d’intérêts d’un document.

Reconnaissance et synthétisation de la parole

Que ce soit avec nos haut-parleurs intelligents ou notre mobile, nous utilisons cette fonctionnalité à tous les jours. C’est le processus qui permet d’interpréter de l’audio (notre voix par exemple) et ensuite de convertir le tout en texte qui peut être interprété. La synthétisation est plutôt l’inverse de ce processus, c’est-à-dire que cela va prendre du texte pour le convertir en audio, avec comme entrants le texte à dire et le choix de voix à utiliser.

Comme tout ce que j’explore présentement sur le AI avec Azure, tout est en place de ce côté pour nous offrir un service qui est déjà entraîné pour ceci. Avec la ressource Speech (ou encore le Cognitive Services si on utilise plusieurs fonctionnalités), on peut accéder aux APIs Speech-to-Text ou encore Text-to-Speech pour faire le travail via un endpoint.

Traduction de texte ou parole

Encore une fois quelque chose qu’on utilise fréquemment dans notre quotidien est la traduction. Nous sommes loin de ce que c’était maintenant que la sémantique est considérée pour les traductions. Une chose que j’ai apprise sur le service Translator Text d’Azure, mais qui ne me surprend pas, est qu’il y a plus de 60 langues supportées pour faire du text-to-text. On peut aussi y ajouter des filtres pour éviter des paroles vulgaires ou encore ajouter des tags sur du contenu qu’on ne voudrait pas traduire, comme le nom d’une entreprise.

Compréhension de langage naturel

Le Language Understanding, c’est l’art de prendre ce qu’un utilisateur dit ou écrit dans son langage naturel et de le transformer en action. Trois choses sont essentielles dans ce concept. La première est ce qu’on appelle les énoncés (utterance), c’est à dire la phrase à interpréter. Par exemple la phrase « allume la lumière ». Ensuite nous avons les intentions (intent), qui représentent ce qu’on veut faire à l’intérieur de l’énoncé. Dans cet exemple, nous aurions une intention « Allume » qui ferait la tâche d’allumer quelque chose. Finalement, nous avons les entités (entities), qui sont les items auxquels on fait référence dans les énoncés. Toujours dans le même exemple, ce serait « lumière ».

Une fois qu’on a ces concepts, mettre le tout en place est plutôt simple en utilisant LUIS (Language Understanding Intelligent Service). On y définit une liste d’énoncés, d’intentions et d’entités, chose qui peut aussi être faite à partir d’une liste prédéfinie pour certains domaines. On appelle ceci le authoring model. Une fois qu’il est entraîné (un simple clique de bouton), on peut le publier et l’utiliser de manière prédictive dans nos applications.

Construction d’un bot

Le service cognitif QnA Maker sur Azure est la base de ce qui nous permet de construire un bot qui sera capable de répondre de manière automatisée à des questions sur un service automatisé de support par exemple. On y construit une banque de questions-réponses à partir de laquelle on entraîne la base de connaissances. Ce que ceci permet est d’appliquer un traitement de language naturel sur les questions et réponses, pour faire en sorte que le système sera capable de répondre même si ce n’est pas phrasé exactement comme ce qu’on a inscrit.

Une fois qu’on a ceci, il ne reste qu’à construire un bot pour qu’il utilise cette base de connaissances. C’est possible d’utiliser un SDK et de se lancer dans du code pour le faire, mais je dois avouer que j’ai adoré simplement peser sur un bouton dans ma base QnA Maker qui m’a automatiquement créé un bot. Tout ce qu’il restait à faire ensuite était de l’utiliser dans mon application.

Certification Microsoft Azure AI-900

Une fois toutes ces leçons terminées, j’ai constaté que j’avais fait toutes les leçons permettant de se préparer à l’examen pour la certification Azure AI Fundamentals. Je n’ai donc pas attendu, ayant passé les deux dernières semaines à apprendre tout ceci, et j’ai cédulé mon examen et obtenu ma certification. Si vous suivez ces leçons de manière continue, je suis convaincu que vous aurez aussi la chance de passer l’examen et obtenir votre certification, les leçons nous préparent vraiment bien.

Conclusion

J’ai ajouté quelques leçons à ma collection de leçons générale ainsi qu’à une nouvelle collection pour tout ce qui concerne l’analyse de mots qui a été principalement ma dernière semaine. N’hésitez pas à me laisser savoir dans les commentaires si vous cheminez vers la certification ou encore si vous avez des questions!

Collection sur le Data & AI: Voir la collection
Collection sur le Machine Learning: Voir la collection
Collection sur l’analyse d’images: Voir la collection
Collection sur l’analyse de mots: Voir la collection

Bruno

mVP Challenge

La première partie est disponible ici: Partie 1
La deuxième partie est disponible ici: Partie 2
La troisième partie: vous êtes ici
La quatrième partie est disponible ici: Partie 4
La cinquième partie est disponible ici: Partie 5

MVP Challenge Azure Data & AI – Partie 2

La semaine dernière, je débutais le MVP Challenge Azure Data & AI. Me voici donc une semaine plus tard alors que j’ai exploré plusieurs aspects du Machine Learning et de tout ce qui concerne l’analyse d’images. Voici donc un résumé de mes découvertes.

La première partie est disponible ici: Partie 1
La deuxième partie: vous êtes ici
La troisième partie est disponible ici: Partie 3
La quatrième partie est disponible ici: Partie 4
La cinquième partie est disponible ici: Partie 5

Continuer la lecture de « MVP Challenge Azure Data & AI – Partie 2 »

MVP Challenge Azure Data & AI – Partie 1

J’ai récemment eu l’occasion de participer à un défi, le MVP Challenge, qui est un défi permettant d’explorer de nouvelles avenues. Pour ma part, j’ai choisi de compléter le défi sur un domaine qui pique ma curiosité et pour lequel je n’ai jamais pris le temps d’explorer: Data & AI. Mes prochains articles seront donc un retour sur mon périple dans cette aventure, en espérant piquer votre curiosité à vous aussi!

La deuxième partie est disponible ici: Partie 2
La troisième partie est disponible ici: Partie 3
La quatrième partie est disponible ici: Partie 4
La cinquième partie est disponible ici: Partie 5

Continuer la lecture de « MVP Challenge Azure Data & AI – Partie 1 »

Visual Studio 2022 en preview cet été

Cela fait maintenant 2 ans que la version 16 de Visual Studio est disponible, connue sous le nom de Visual Studio 2019. Malgré que plusieurs fonctionnalités ont été ajoutées depuis, beaucoup étaient en attente de la prochaine version majeure. Cette semaine, nous avons appris que la version 17, nommée Visual Studio 2022, devrait être disponible en version preview au courant de l’été. J’avais donc envie de vous partager ce qui est à venir dans cette version.

Continuer la lecture de « Visual Studio 2022 en preview cet été »