Utiliser Cognitive Services dans PowerAppsUse Cognitive Services in PowerApps

Cet article vous montre comment générer une application de base qui utilise l’API Analyse de texte de Microsoft Cognitive Services pour analyser le texte.This article shows you how to build a basic app that uses the Microsoft Cognitive Services Text Analytics API to analyze text. Nous allons vous montrer comment configurer l’API Analyse de texte et vous y connecter avec le connecteur Analyse de texte.We'll show you how to set up the Text Analytics API, and connect to it with the Text Analytics connector. Nous vous montrerons ensuite comment créer une application qui appelle l’API.Then we'll show you how to create an app that calls the API.

Note

Si vous débutez dans la création d’applications dans PowerApps, nous vous recommandons de lire Créer une application à partir de zéro avant de parcourir cet article.If you are new to building apps in PowerApps, we recommend reading Create an app from scratch before diving into this article.

Présentation de Microsoft Cognitive ServicesIntroduction to Microsoft Cognitive Services

Microsoft Cognitive Services est une collection d’API, de SDK et de services qui vous permettent de créer des applications plus intelligentes, attrayantes et détectables.Microsoft Cognitive Services are a set of APIs, SDKs, and services available to make your applications more intelligent, engaging, and discoverable. Ces services vous permettent d’ajouter facilement des fonctionnalités Intelligence (émotion, détection vidéo, reconnaissance faciale, vocale et visuelle, synthèse vocale et compréhension du langage) dans vos applications.These services enable you to easily add intelligent features – such as emotion and video detection; facial, speech and vision recognition; and speech and language understanding – into your applications.

Nous allons nous concentrer sur la « compréhension du langage » pour cet article, avec l’API Analyse de texte.We'll focus on "language understanding" for this article, working with the Text Analytics API. Cette API vous permet de détecter le sentiment, les phrases clés, les sujets et la langue du texte.This API enables you to detect sentiment, key phrases, topics, and language from your text. Vous allez commencer en essayant une démonstration de l’API, puis en vous inscrivant à une préversion.Let's get started by trying out a demo of the API, then signing up for a preview version.

Essayer l’API Analyse de texteTry out the Text Analytics API

L’API contient une démonstration en ligne : vous pouvez voir comment elle fonctionne et voir le fichier JSON retourné par le service.The API has an online demo – you can see how it works, and look at the JSON that the service returns.

  1. Accédez à la page API Analyse de texte.Go to the Text Analytics API page.

  2. Dans la section Voir en action, utilisez l’exemple de texte ou entrez votre propre texte.In the See it in action section, use the example text, or enter your own text. Cliquez ou appuyez ensuite sur Analyser.Then click or tap Analyze.

    Démonstration de l’API Analyse de texte

  3. La page affiche les résultats mis en forme sous l’onglet Texte analysé, et la réponse JSON sous l’onglet JSON. JSON est un moyen de représenter des données, dans ce cas, les données retournées par l’API Analyse de texte.The page shows formatted results on the Analyzed text tab, and the JSON response on the JSON tab. JSON is a way to represent data - in this case, data returned by the Text Analytics API.

S’inscrire à l’API Analyse de texteSign up for the Text Analytics API

L’API est disponible en préversion et elle est associée à un abonnement Azure.The API is available as a free preview, and it is associated with an Azure subscription. Vous gérez l’API au moyen du portail Azure.You manage the API through the Azure portal.

  1. Si vous n’avez pas d’abonnement Azure, inscrivez-vous à un essai gratuit.If you don't already have an Azure subscription, sign up for a free subscription.

  2. Connectez-vous à votre compte Azure.Sign in to your Azure account.

  3. Accédez au panneau Create Cognitive Services (Créer des services Cognitive Services) dans le portail Azure.Go to the Create Cognitive Services blade in the Azure portal.

  4. Entrez les informations pour l’API Analyse de texte, comme dans l’image suivante.Enter information for the Text Analytics API, like in the following image. Sélectionnez le niveau tarifaire F0 (gratuit).Select the F0 (free) pricing tier.

    Créer l’API Analyse de texte

  5. Dans le coin inférieur gauche, cliquez ou appuyez sur Créer.In the lower-left corner, click or tap Create.

  6. Sur le tableau de bord, cliquez ou appuyez sur l’API que vous venez de créer.On the Dashboard, click or tap the API that you just created.

    Tableau de bord Azure

  7. Cliquez ou appuyez sur Clés.Click or tap Keys.

    Menu Azure

  8. Copiez une des clés sur la droite de l’écran.Copy one of the keys on the right of the screen. Vous allez utiliser cette clé plus tard quand vous allez créer une connexion à l’API.You use this key later when you create a connection to the API.

    Clés API

Créer l’applicationBuild the app

Maintenant que l’API Analyse de texte est fonctionnelle, vous pouvez vous y connecter à partir de PowerApps et générer une application qui appelle l’API.Now that you have the Text Analytics API up and running, you connect to it from PowerApps, and build an app that calls the API. Il s’agit d’une application à un seul écran qui fournit des fonctionnalités similaires à la démonstration figurant sur la page de l’API Analyse de texte.This is a single screen app that provides functionality similar to the demo on the Text Analytics API page. Commençons.Let's get started on building this!

Créer l’application et ajouter une connexionCreate the app and add a connection

Tout d’abord, vous allez créer une application de téléphone vide et ajouter une connexion avec le connecteur Analyse de texte.First, you create a blank phone app and add a connection with the Text Analytics connector. Si vous avez besoin de plus d’informations sur ces tâches, consultez Créer une application à partir de zéro et Gérer vos connexions dans PowerApps.If you need more information about these tasks, see Create an app from scratch and Manage your connections in PowerApps.

  1. Dans web.powerapps.com, choisissez Démarrer de zéro > icône de l’application de téléphone (téléphone) > Développer cette application.In web.powerapps.com, choose Start from blank > Phone app icon (phone) > Make this app.

    Démarrer de zéro

  2. Dans le volet central de PowerApps Studio, choisissez Se connecter aux données.In the middle pane of the PowerApps Studio, choose connect to data.

  3. Dans le volet Données, cliquez ou appuyez sur Nouvelle connexion > Analyse de texte.On the Data panel, click or tap New connection > Text Analytics.

  4. Copiez votre clé dans Clé de compte, puis appuyez ou cliquez sur Créer.Copy your key into Account Key, then click or tap Create.

    Connecteur Analyse de texte

Ajouter des contrôles à l’applicationAdd controls to the app

L’étape suivante de la création de l’application est d’ajouter tous les contrôles.The next step in creating the app is to add all the controls. Normalement, quand je crée des applications, j’ajoute des formules aux contrôles au fur et à mesure, mais dans ce cas, vous allez tout d’abord vous concentrer sur les contrôles, puis ajouter quelques formules dans la section suivante.Normally when I build apps, I add formulas to the controls as I go, but in this case we'll focus on the controls first, then add a few formulas in the next section. L’image suivante illustre l’application avec tous les contrôles.The following image shows the app with all the controls.

Application terminée

Suivez les étapes ci-dessous pour créer cet écran.Follow the steps below to create this screen. Si un nom de contrôle est spécifié, ce nom est utilisé dans une formule dans la section suivante.If a control name is specified, that name is used in a formula in the next section.

  1. Sous l’onglet Accueil, cliquez ou appuyez sur Nouvel écran, puis sur Écran avec défilement.On the Home tab, click or tap New Screen, then Scrollable screen.

  2. Sur Écran2, sélectionnez [Title] et remplacez-le par Analyse de texte.On Screen2, select [Title] and change it to Text Analysis.

  3. Ajoutez un contrôle Label pour le texte d’introduction.Add a Label control for the introductory text.

  4. Ajoutez un contrôle Text input afin que vous puissiez entrer du texte à analyser.Add a Text input control, so you can enter text to analyze. Nommez le contrôle tiTextToAnalyze.Name the control tiTextToAnalyze. L’application doit maintenant ressembler à l’image suivante.The app should now look like the following image.

    Application avec titre, sous-titre et entrée de texte

  5. Ajoutez trois contrôles Check box afin que vous puissiez choisir les opérations d’API à effectuer.Add three Check box controls, so you can choose which API operations to perform. Nommez les contrôles chkLanguage, chkPhrases et chkSentiment.Name the controls chkLanguage, chkPhrases, and chkSentiment.

  6. Ajoutez un bouton qui va vous permettre d’appeler l’API une fois que vous avez sélectionné les opérations à effectuer.Add a button, so you can call the API after selecting which operations to perform. L’application doit maintenant ressembler à l’image suivante.The app should now look like the following image.

    Application avec des cases à cocher et un bouton

  7. Ajoutez trois contrôles Label.Add three Label controls. Les deux premiers contrôles contiennent les résultats des appels d’API sur la langue et le sentiment ; le troisième est simplement une introduction à la galerie en bas de l’écran.The first two hold results from the language and sentiment API calls; the third is just an introduction for the gallery at the bottom of the screen.

  8. Ajoutez un contrôle Blank vertical gallery, puis ajoutez un contrôle Label dans la galerie.Add a Blank vertical gallery control, then add a Label control to the gallery. La galerie contient les résultats provenant de l’appel d’API sur les expressions clés.The gallery holds results from the key phrases API call. L’application doit maintenant ressembler à l’image suivante.The app should now look like the following image.

    Application avec des étiquettes et une galerie

  9. Dans le volet gauche, sélectionnez Écran1 > points de suspension (...) > Supprimer (vous n’avez pas besoin de cet écran pour l’application).In the left pane, select Screen1 > ellipsis (. . .) > Delete (you don't need this screen for the app).

Nous gardons cette application la plus simple possible pour rester concentrer sur l’API Analyse de texte, mais vous pouvez ajouter des éléments, comme une logique pour afficher et masquer des contrôles en fonction des cases à cocher sélectionnées, une gestion des erreurs si l’utilisateur ne sélectionne aucune option, et ainsi de suite.We're keeping this app simple to focus on calling the Text Analytics API, but you could add things - like logic to show and hide controls based on the check boxes selected, error handling if the user doesn't select any options, and so on.

Ajouter une logique pour effectuer les appels d’API adéquatsAdd logic to make the right API calls

Vous disposez maintenant d’une application attrayante, mais celle-ci ne fait rien encore.OK, you have a nice-looking app, but it doesn't do anything yet. Vous allez résoudre cela dans un moment.You'll fix that in a moment. Mais avant d’approfondir tout cela, essayez de comprendre le modèle suivi par l’application :But before we dive into the details, let's understand the pattern that the app follows:

  1. L’application effectue des appels d’API spécifiques selon les cases à cocher sélectionnées dans l’application.The app makes specific API calls based on the check boxes selected in the app. Lorsque vous cliquez ou appuyez sur Analyser le texte, l’application effectue 1, 2 ou 3 appels d’API.When you click or tap Analyze text, the app makes 1, 2, or 3 API calls.

  2. L’application stocke les données retournées par l’API dans trois différentes collections : languageCollect, sentimentCollect et phrasesCollect.The app stores data that the API returns in three different collections: languageCollect, sentimentCollect, and phrasesCollect.

  3. L’application met à jour la propriété Text de deux des étiquettes et la propriété Items de la galerie en fonction de ce qui est présent dans les trois collections.The app updates the Text property for two of the labels, and the Items property for the gallery, based on what's in the three collections.

En gardant cela à l’esprit, ajoutez la formule correspondant à la propriété OnSelect du bouton.With that background, let's add the formula for the OnSelect property of the button. C’est là que la magie se produit.This is where all the magic happens.

If(chkLanguage.Value=true,

        ClearCollect(languageCollect, TextAnalytics.DetectLanguage({numberOfLanguagesToDetect:1, text:tiTextToAnalyze.Text}).detectedLanguages.name)

);

If(chkPhrases.Value=true,

        ClearCollect(phrasesCollect, TextAnalytics.KeyPhrases({language:"en", text:tiTextToAnalyze.Text}).keyPhrases)

);

If(chkSentiment.Value=true,

        ClearCollect(sentimentCollect, TextAnalytics.DetectSentiment({language:"en", text:tiTextToAnalyze.Text}).score)

)

Faisons les choses par étape :There's a bit going on here, so let's break it down:

  • Les instructions If sont simples : si une case à cocher spécifique est sélectionnée, effectuez l’appel d’API pour cette opération.The If statements are straightforward – if a specific check box is selected, make the API call for that operation.

  • Dans chaque appel, spécifiez les paramètres appropriés :Within each call, specify the appropriate parameters:

    • Dans les trois appels, spécifiez tiTextToAnalyze.Text en tant que texte d’entrée.In all three calls, you specify tiTextToAnalyze.Text as the input text.

    • Dans DetectLanguage(), numberOfLanguagesToDetect est codé en dur sur 1, mais vous pouvez aussi transmettre ce paramètre selon une logique dans l’application.In DetectLanguage(), numberOfLanguagesToDetect is hard-coded as 1, but you could pass this parameter based on some logic in the app.

    • Dans KeyPhrases() et DetectSentiment(), la langue est codée en dur sur « en », mais vous pouvez aussi transmettre ce paramètre selon une logique dans l’application.In KeyPhrases() and DetectSentiment(),language is hard-coded as "en", but you could pass this parameter based on some logic in the app. Par exemple, vous pouvez détecter la langue en premier, puis définir ce paramètre selon les valeurs retournées par DetectLanguage().For example, you could detect the language first, then set this parameter based on what DetectLanguage() returns.

  • Pour chaque appel effectué, ajoutez les résultats à la collection appropriée :For each call that is made, add the results to the appropriate collection:

    • Pour languageCollect, ajoutez le nom de la langue identifiée dans le texte.For languageCollect, add the name of the language that was identified in the text.

    • Pour phrasesCollect, ajoutez les expressions clés identifiées dans le texte.For phrasesCollect, add the keyPhrases that were identified in the text.

    • Pour sentimentCollect, ajoutez le sentiment (score) pour le texte, qui a la valeur 0 ou 1, 1 étant 100 % positif.For sentimentCollect, add the sentiment score for the text, which is a value of 0-1, with 1 being 100% positive.

Afficher les résultats des appels d’APIDisplay the results of the API calls

Pour afficher les résultats des appels d’API, faites référence à la collection appropriée dans chaque contrôle :To display the results of the API calls, reference the appropriate collection in each control:

  1. Définissez la propriété Text de l’étiquette de langue sur "The language detected is " & First(languageCollect).name.Set the Text property of the language label to: "The language detected is " & First(languageCollect).name.

    La fonction First() retourne le premier (et unique) enregistrement dans languageCollect et l’application affiche le nom (champ unique) associé à cet enregistrement.The First() function returns the first (and in this case only) record in languageCollect, and the app displays the name (the only field) associated with that record.

  2. Définissez la propriété Text de l’étiquette de sentiment sur "The sentiment score is " & Round(First(sentimentCollect.Value).Value, 3)\*100 & "% positive.".Set the Text property of the sentiment label to: "The sentiment score is " & Round(First(sentimentCollect.Value).Value, 3)\*100 & "% positive.".

    Cette formule utilise également la fonction First(), obtient la Valeur (0-1) du premier et seul enregistrement, puis le formate sous forme de pourcentage.This formula also uses the First() function, gets the Value (0-1) from the first and only record, then formats it as a percentage.

  3. Définissez la propriété Items de la galerie d’expressions clés sur phrasesCollect.Set the Items property of the key phrases gallery to: phrasesCollect.

    Comme vous utilisez à présent une galerie, vous n’avez pas besoin de la fonction First() pour extraire une valeur unique.You're now working with a gallery so you don't need the First() function to extract a single value. Faites référence à la collection. La galerie affiche ensuite les expressions clés sous forme de liste.You reference the collection, and the gallery displays the key phrases as a list.

Exécuter l’applicationRun the app

Maintenant que l’application est terminée, exécutez-la pour la voir fonctionner : cliquez ou appuyez sur le bouton Exécuter dans le coin supérieur droit.Now that the app is finished, run it to see how it works: click or tap the run button in the upper right corner Exécuter l’application.. Dans l’image suivante, les trois options sont sélectionnées et le texte est le même que le texte par défaut sur la page de l’API Analyse de texte.In the following image, all three options are selected, and the text is the same as the default text on the Text Analytics API page.

Application terminée avec des données

Si vous comparez la sortie de cette application à la page de l’API Analyse de texte au début de cet article, vous remarquez que vous obtenez les mêmes résultats.If you compare the output of this app to the Text Analytics API page at the beginning of this article, you see that the results are the same.

Nous espérons que vous comprenez maintenant un peu plus l’API Analyse de texte et que vous avez apprécié de voir comment l’intégrer à une application.We hope you now understand a little more about the Text Analytics API, and you've enjoyed seeing how to incorporate it into an app. Faites-nous savoir s’il y a d’autres services Cognitive Services (ou d’autres services en général) que vous souhaitez que nous abordions dans nos articles.Let us know if there are other Cognitive Services (or other services in general) that you would like us to focus on in our articles. Comme toujours, laissez des avis et des questions dans les commentaires.As always, please leave feedback and any questions in the comments.