Créer une application LUIS décomposable

Important

LUIS sera mis hors service le 1er octobre 2025 et à partir du 1er avril 2023, vous ne pourrez plus créer de nouvelles ressources LUIS. Nous vous recommandons de migrer vos applications LUIS vers la compréhension du langage courant pour tirer parti de la prise en charge continue des produits et des fonctionnalités multilingues.

Dans ce didacticiel, vous serez en mesure de créer une application de télécommunications LUIS qui peut prédire différentes intentions de l’utilisateur. À la fin du didacticiel, nous devrions avoir une application de télécommunications capable de prédire les intentions de l’utilisateur en fonction du texte fourni par les utilisateurs.

Nous allons gérer différents scénarios utilisateur (intentions), tels que :

  • Inscription à une nouvelle ligne de télécommunications
  • Mise à jour d’un niveau existant
  • Paiement d’une facture

Ce didacticiel vous apprendra à effectuer les opérations suivantes :

  1. Créer une application LUIS
  2. Créer des intentions
  3. Ajouter des entités
  4. Ajouter des énoncés
  5. Étiqueter les exemples d’énoncés
  6. Former une application
  7. Publier une application
  8. Obtenir des prédictions à partir du point de terminaison publié

Créer une application LUIS

  1. Se connecter au portail LUIS

  2. Créez une nouvelle application en sélectionnant + Nouvelle application.

    Capture de l’écran de création d’une application.

  3. Dans la fenêtre qui s’affiche, entrez le nom « Telecom Tutorial », en conservant la culture par défaut, anglais. Ne définissez pas les autres champs car ils sont facultatifs. Sélectionnez Terminé.

    Capture d’écran des champs de création de l’application LUIS.

Intentions utilisateur en tant qu’intentions

La première chose que vous verrez dans la section Build sont les intentions de l’application. Les intentions représentent une tâche ou une action qu’un utilisateur souhaite effectuer.

Imaginez une application de télécommunications LUIS, de quoi un utilisateur a-t-il besoin ?

Il voudra probablement exécuter un certain type d’action utilisateur ou demander de l’aide. Un autre utilisateur peut souhaiter mettre à jour son niveau ou payer une facture

Le schéma résultant est le suivant. Pour plus d’informations, consultez meilleures pratiques relatives à la planification du schéma.

Intention Objectif
UserActions Déterminer les actions de l’utilisateur
Aide Demander de l’aide
UpdateTier Mettre à jour le niveau actuel
PayBill Payer une facture en suspens
None Déterminez si l’utilisateur demande une chose à laquelle l’application LUIS n’est pas conçue pour répondre. Cette intention est fournie dans le cadre de la création de l’application et elle ne peut pas être supprimée.

Créer une intention

Une intention sert à classifier les énoncés utilisateur en fonction de l’intention de l’utilisateur, déterminée à partir du texte en langage naturel.

Pour classifier un énoncé, l’intention a besoin d’exemples d’énoncés utilisateur qui doivent être classifiés avec cette intention.

  1. Sélectionnez Générer dans le menu de navigation supérieur, puis sélectionnez Intentions sur le côté gauche de l’écran. Sélectionner + Create (Créer) pour créer une intention. Entrez le nouveau nom d’intention, « UserAction », puis sélectionnez Terminé

    UserAction peut être l’un des nombreuses intentions. Par exemple, certains utilisateurs peuvent souhaiter s’inscrire à une nouvelle ligne, tandis que d’autres peuvent demander à récupérer des informations.

  2. Ajoutez plusieurs exemples d’énoncés à cette intention qu’un utilisateur est selon vous susceptible de demander :

    • Bonjour ! Je souhaite m’inscrire pour une nouvelle ligne
    • Puis-je m’inscrire pour obtenir une nouvelle ligne ?
    • Bonjour, je souhaite une nouvelle ligne
    • J’ai oublié mon numéro de ligne !
    • Je souhaite un nouveau numéro de ligne

    Capture d’écran montrant des exemples d’énoncés pour l’intention UserAction.

Pour l’intention PayBill, certains énoncés peuvent être :

  • Je souhaite payer ma facture
  • Régler ma facture
  • Payer une facture
  • Je souhaite fermer mon solde actuel
  • Curieux ! Je souhaite payer la facture en cours

En fournissant des exemples d’énoncés, vous formez LUIS à déterminer les types d’énoncés à prédire pour cette intention. Il s’agit d’exemples positifs. Les énoncés de toutes les autres intentions sont traités comme des exemples négatifs pour cette intention. Dans l’idéal, plus vous ajoutez d’exemples d’énoncés, plus les prédictions de votre application sont performantes.

Ces quelques énoncés sont fournis à titre d’exemple uniquement. Une application réelle doit disposer d’au moins 15 à 30 énoncés avec des caractéristiques différentes (longueur, ordre des mots, conjugaison, exactitude grammaticale, ponctuation et nombre de mots).

Création des intentions restantes

Effectuez les étapes ci-dessus pour ajouter les intentions suivantes à l’application :

« Help »

  • « J’ai besoin d’aide »
  • « J’ai besoin d’assistance »
  • « De l’aide s’il vous plaît »
  • « Quelqu’un peut-il m’assister ? »
  • « Je suis coincé, pouvez-vous m’aider »
  • « Puis-je obtenir de l’aide ? »

« UpdateTier »

  • « Je souhaite mettre à jour mon niveau »
  • « Mettre à jour mon niveau »
  • « Je veux passer au niveau VIP »
  • « Changer mon abonnement au niveau standard »

Exemples d’énoncés pour l’intention None

L’application cliente doit savoir si un énoncé est inutile ou inapproprié pour l’application. L’intention « None » est ajoutée à chaque application dans le cadre du processus de création pour déterminer si un énoncé ne doit pas être traité par l’application cliente.

Si LUIS retourne l’intention « None » pour un énoncé, votre application cliente peut demander si l’utilisateur souhaite mettre fin à la conversation ou donner d’autres instructions pour poursuivre la conversation.

Si vous ne complétez pas l’intention « None », un énoncé qui devrait être prédit en dehors du domaine du sujet le sera dans l’une des intentions de domaine du sujet existant. En conséquence, l’application cliente, par exemple un bot conversationnel, effectue des opérations incorrectes en s’appuyant sur une prédiction incorrecte.

  1. Dans le panneau gauche, sélectionnez Intents (Intentions).

  2. Sélectionnez l’intention None. Ajoutez trois énoncés que votre utilisateur est susceptible d’entrer, mais qui ne sont pas pertinents pour votre application de télécommunications. Ces exemples ne doivent pas utiliser des mots auxquels vous vous attendez dans le domaine couvert, par exemple Niveau, mise à jour, connexion, facturation.

    • « Quand est mon vol ? »
    • « Je dois modifier ma commande de pizza »
    • « Quel est le temps prévu pour aujourd’hui ? »

Ajouter des entités

Une entité est un élément relatif à l’intention de l’utilisateur. Les entités définissent des données qui peuvent être extraites de l’énoncé et qui sont essentielles pour effectuer l’action demandée par l’utilisateur.

  1. Dans la section Build, sélectionnez Entités.

  2. Pour ajouter une nouvelle entité, sélectionnez + Créer

    Dans cet exemple, nous allons créer deux entités, « UpdateTierInfo » comme type d’entité Issue de l’apprentissage automatique, et « Tier » comme type d’entité de liste. Luis vous permet également de créer différents types d’entités.

  3. Dans la fenêtre qui s’affiche, entrez «UpdateTierInfo», puis sélectionnez Issue de l’apprentissage automatique dans les types disponibles. Activez la case à cocher Ajouter une structure pour pouvoir ajouter une structure à cette entité.

    Capture d’écran montrant une entité.

  4. Sélectionnez Suivant.

  5. Pour ajouter une sous-entité enfant, sélectionnez le symbole « + » et commencez à ajouter l’enfant. Pour notre exemple d’entité, « UpdateTierInfo », nous avons besoin de trois choses :

    • OriginalTier
    • NewTier
    • PhoneNumber

    Capture d’écran des sous-entités de l’application.

  6. Sélectionnez Créer après avoir ajouté toutes les sous-entités.

    Nous allons créer une autre entité nommée « Tier », mais cette fois-ci, il s’agit d’une entité de liste, qui inclut tous les niveaux que nous pouvons fournir : niveau Standard, niveau Premium et niveau VIP.

  7. Pour ce faire, accédez à l’onglet entités, puis appuyez sur +créer et sélectionnez une liste parmi les types dans l’écran qui s’affiche.

  8. Ajoutez les éléments à votre liste et, si vous le souhaitez, vous pouvez ajouter des synonymes pour vous assurer que tous les cas de cette mention seront compris.

    Capture d’écran d’une entité de liste.

  9. Revenez maintenant à l’entité « UpdateTierInfo » et ajoutez l’entité « Tier » en tant que fonctionnalité pour les entités « OriginalTier » et « newTier » que nous avons créées précédemment. Il doit se présenter comme suit :

    Capture d’écran des fonctionnalités d’une entité.

    Nous avons ajouté le niveau en tant que fonctionnalité pour « originalTier » et « newTier », et nous avons ajouté l’entité « PhoneNumber », qui est un type Regex. Il peut être créé de la même façon que nous avons créé une ML et une entité de liste.

Nous avons maintenant créé des intentions, ajouté des exemples d’énoncés, et ajouté des entités. Nous avons créé quatre intentions (autres que l’intention « none ») et trois entités.

Étiqueter les exemples d’énoncés

L’entité issue du machine learning est créée et les sous-entités ont des caractéristiques. Pour terminer l’amélioration de l’extraction, vous devez étiqueter les exemples d’énoncés avec les sous-entités.

Il existe deux façons d’étiqueter des énoncés :

  1. Utiliser l’outil d’étiquetage

    1. Ouvrez la Palette d’entités, puis sélectionnez le symbole « @ » dans la barre d’outils contextuelle.
    2. Sélectionnez chaque ligne d’entité dans la palette, puis utilisez le curseur de la palette pour sélectionner l’entité dans chaque exemple d’énoncé.
  2. Mettez en surbrillance le texte en faisant glisser le curseur. À l’aide du curseur, mettez en surbrillance le texte que vous souhaitez étiqueter. Dans l’image suivante, nous avons mis en surbrillance « vip - tier » et sélectioné l’entité « NewTier ».

    Capture d’écran montrant comment étiqueter les énoncés.

Effectuer l’apprentissage de l’application

En haut à droite du site web LUIS, sélectionnez le bouton Effectuer l’apprentissage.

Avant la formation, assurez-vous qu’il existe au moins un énoncé pour chaque intention.

Capture d’écran montrant l’entraînement d’une application.

Publier l’application

Pour recevoir une prédiction LUIS dans un chatbot ou une autre application cliente, vous devez publier l’application sur le point de terminaison de prédiction. Pour publier, vous devez d’abord former votre application.

  1. Dans le volet de navigation supérieur droit, sélectionnez Publier.

    Capture d’écran montrant le bouton de publication d’une application.

  2. Sélectionnez l’emplacement Production, puis sélectionnez Terminé.

    Capture d’écran montrant le sélecteur d’emplacement de production.

  3. Sélectionnez Accéder à vos URL de point de terminaison dans la notification pour accéder à la page Ressources Azure. Vous ne pouvez voir les URL que si vous disposez d’une ressource de prédiction associée à l’application. Vous pouvez également rechercher la page Ressources Azure en cliquant sur Gérer à gauche de l’écran.

    Capture d’écran montrant la notification d’accès au point de terminaison.

Obtenir une prédiction d’intention

  1. Sélectionnez Gérer dans le menu en haut à droite, puis sélectionnez Ressources Azure sur la gauche.

  2. Copiez l’URL de la Requête d’exemple et collez-la dans un nouvel onglet de navigateur Web.

    Le format de l’URL de point de terminaison est le suivant.

    https://YOUR-CUSTOM-SUBDOMAIN.api.cognitive.microsoft.com/luis/prediction/v3.0/apps/YOUR-APP-ID/slots/production/predict?subscription-key=YOUR-KEY-ID&verbose=true&show-all-intents=true&log=true&query=YOUR\_QUERY\_HERE
    
  3. Accédez à la fin de l’URL dans la barre d’adresses et remplacez le paramètre de chaîne query= par :

    « Bonjour Je cherche un nouveau numéro. »

    La requête d’énoncé est passée dans l’URI. Cet énoncé n’est pas le même que l’un des exemples d’énoncés, et doit être un bon test pour vérifier si LUIS prédit l’intention UserAction comme l’intention du score le plus élevé.

    {
        "query": "hello! i am looking for a new number please",
        "prediction": 
        {
            "topIntent": "UserAction",
            "intents": 
            {
                "UserAction": {
                "score": 0.8607431},
                "Help":{
                "score": 0.031376917},
                "PayBill": {
                "score": 0.01989629},
                "None": {
                "score": 0.013738701},
                "UpdateTier": {
                "score": 0.012313577}
            },
        "entities": {}
        }
    }
    

Le résultat JSON identifie l’intention avec le score le plus élevé en tant que propriété prediction.topIntent. Tous les scores sont compris entre 1 et 0, le meilleur score étant celui qui est le plus proche de 1.

Étapes suivantes de l’application cliente

Dans ce didacticiel, vous avez créé une application LUIS, des intentions et des entités, ajouté des exemples d’énoncés pour chaque intention, ajouté des exemples d’énoncés à l’intention None, puis effectué un apprentissage, publié et testé au niveau du point de terminaison. Ce sont les étapes de base de la génération d’un modèle LUIS.

LUIS ne fournit pas de réponses aux énoncés de l’utilisateur ; il identifie uniquement le type d’informations demandé dans un langage naturel. Le suivi de la conversation est fourni par l’application cliente telle qu’un bot Azure.

Nettoyer les ressources

Lorsque vous n’en avez plus besoin, supprimez l’application LUIS. Pour ce faire, sélectionnez Mes applications dans le menu en haut à gauche. Sélectionnez les points de suspension (... ) à droite du nom de l’application dans la liste des applications, puis Supprimer. Dans la boîte de dialogue contextuelle nommée Supprimer l’application ?, sélectionnez OK.