Questions/réponses

Remarque

A partir de la version 22.04, la fonction de questions/réponses est progressivement supprimée et remplacée par la fonction Knowledge. La fonction Connaissances présente des avantages importants par rapport à la fonction Questions/Réponses, à savoir :

  • Vous pouvez générer des intentions de réponse dans votre brique directement à partir de FAQ ou de documents de base de connaissances existants. Vous n'avez pas besoin de formater manuellement ces documents avant de les importer dans votre brique. En outre, des exemples de variation sont générés pour chaque intention.
  • Dans les conversations avec la brique, les intentions de réponse générées sont résolues avec le traitement du langage naturel comme les intentions standard. Vous n'avez pas besoin de propriétés ou de composants propres aux questions/réponses pour gérer ces intentions.

En outre, la fonctionnalité de questions/réponses ne fonctionne pas dans les flux de dialogue développés en mode visuel.

Si vous disposez d'une brique existante avec un module de questions/réponses, vous pouvez continuer à utiliser ce module dans les versions futures de la brique. Toutefois, nous vous recommandons de passer à l'utilisation des intentions de réponse (à l'aide de la fonctionnalité Knowledge ou en créant manuellement des intentions de réponse). Reportez-vous à Intentions de réponse.

La fonctionnalité de questions/réponses permet à la brique de répondre à des questions d'intérêt général en renvoyant des paires de questions et de réponses. Elle vous permet d'utiliser une brique pour mettre à disposition des foires aux questions ou d'autres documents de transfert de connaissances.

L'ajout d'un module de questions/réponses à votre brique lui permet de déterminer si l'entrée utilisateur est destinée à une transaction ("Quel est mon solde ?") ou à une question ("Quelle est l'adresse de la banque ?"), puis de répondre de manière appropriée.

Ajout de questions/réponses à une brique

La diapositive ci-dessus présente comment ajouter des questions-réponses à une brique à l'aide de la fonctionnalité de questions-réponses :
  1. Activez la fonctionnalité de questions-réponses en cliquant sur Questions-réponses (Il s'agit d'une image de l'icône Questions/réponses dans la barre de navigation de gauche.) dans la barre de navigation de gauche. Cliquez ensuite sur Ajouter des questions/réponses.

    Remarque

    Ceci n'est possible que dans les briques créées en mode boîte de dialogue YAML.
  2. Chargez les fichiers source (au format CSV) qui comprennent les paires de question et de réponse catégorisées. Création du fichier de source de données décrit le format du fichier et fournit des instructions sur son contenu.
    Description de l'image add-qna-source.png
    Description de l'illustration add-qna-source.png

  3. Si nécessaire, vous pouvez modifier les questions et les réponses. Vous pouvez également en ajouter ou en supprimer.
  4. Entraînez la brique à l'aide de l'entraîneur de Q&A.
    Description de l'image train-w-qna.png
    Description de l'illustration train-w-qna.png

  5. Testez la nouvelle fonctionnalité de questions/réponses en saisissant des questions dans le testeur de questions/réponses. Dans le cadre du processus de test, vous devez ajouter d'autres questions à la source de données afin d'améliorer la capacité de reconnaissance des questions. Vous devez effectuer un nouvel entraînement chaque fois que vous ajoutez ou modifiez des éléments dans la source de données.

  6. Pour utiliser les questions/réponses dans le flux de dialogue d'une brique, vous devez configurer le composant System.Qna. Vous devez également ajouter une nouvelle transition au début du composant System.Intent qui référence ce nouveau composant, afin que les questions de questions/réponses soient acheminées vers le composant de questions/réponses. Reportez-vous à Comment configurer le flux de dialogue pour les questions/réponses ?.
  7. Ajoutez un état pour l'action none et redéfinissez la transition sur le composant de questions/réponses lorsqu'une réponse est donnée à la question en ajoutant qna à la transition next :
      qna:
        component: "System.QnA"
          transitions:
            actions:
              none: "unresolved"
              next: "qna"
      unresolved:
        component: "System.Output"
          properties:
          text: "Sorry, I did not find any match. Can you rephrase the question?"
        transitions:
          return: "done"
    
  8. Testez la brique.

Création du fichier de source de données

Le fichier de source de données du contenu de questions/réponses doit être un fichier CSV encodé en UTF-8. Ce fichier contient une ligne d'en-tête dont les valeurs sont (de gauche à droite) category_path, questions et content.
Colonne Contenu
category_path

Les catégories d'une paire de questions/réponses donnée.

Lorsqu'une paire de questions/réponses appartient à plusieurs catégories, ajoutez chaque catégorie sur une nouvelle ligne.

Utilisez une barre oblique (/) pour indiquer une hiérarchie. Par exemple : Trading/Placing Order.
Il s'agit d'une image d'un fichier CSV.

questions

Questions qui s'affichent pour l'utilisateur. Ajoutez chaque version de cette question sur une nouvelle ligne. La première question, appelée question canonique, est la question qui s'affiche par défaut dans le message de la brique. Les questions suivantes de la colonne constituent d'autres versions.
Il s'agit d'une image du fichier CSV.

content

Réponses.

Vous pouvez modifier votre fichier de source de données après l'avoir importé.

Instructions relatives aux sources de données

  • L'ajout de plusieurs questions pour chaque réponse augmente la probabilité de renvoi d'une paire de questions/réponses pertinente aux utilisateurs. Créez 2 à 5 questions pour chaque réponse. Fournissez suffisamment de questions pour couvrir un échantillon des différentes formulations que l'utilisateur peut employer pour se renseigner sur un sujet. Essayez de varier le sujet (en restant cohérent avec la réponse), le verbe et les mots interrogatifs comme "how", "what", "where", etc. Par exemple, How do I find out how much money do I have? peut être reformulé des façons suivantes :
    • How do I get my account balance?

    • Where can I find my account balance?

    • Can I get my account balance?

  • Même si les questions sont tournées différemment, elles doivent toutes renvoyer les mêmes réponses.

  • Vous n'avez pas besoin de créer d'autres questions pour prendre en charge les mots courants, les synonymes ou les fautes de frappe. Vous pouvez utiliser la page Configuration de langue pour ajouter des synonymes ou des abréviations. Les fautes de frappe sont gérées automatiquement.

  • Restez concis dans les réponses. Fournissez un lien permettant d'obtenir des informations plus détaillées. Les liens de questions/réponses ne peuvent pas être masqués. Vous ne pouvez donc pas utiliser <a href> pour spécifier un nom de site. Ces liens doivent être explicites (par exemple, http://www.myanswers.com/answer/topic1.html).

  • N'utilisez que du texte brut.

  • Les utilisateurs s'intéressent aux trois premières correspondances pour obtenir les informations qu'ils souhaitent. Même si vous devez vous concentrer sur la première correspondance, votre objectif est avant tout de vous assurer que les informations relatives à la demande seront affichées dans les trois premières correspondances.

  • Créez un fichier de test en batch chaque fois que vous mettez à jour la source de données. Ce fichier de batch contient toutes les questions auxquelles vous voulez être certain que la brique pourra répondre correctement. Pour en savoir plus sur ce fichier, reportez-vous à Création du fichier CSV pour les tests en batch.

Gestion des sources de données et des modules de questions/réponses

Ajout de sources de données supplémentaires
Vous pouvez ajouter des fichiers de questions et de réponses supplémentaires afin d'améliorer les capacités de vos questions/réponses. Pour télécharger un nouveau fichier CSV encodé en UTF-8 dans une nouvelle source de données de questions/réponses, procédez comme suit :
  1. Cliquez sur Questions/réponses (Il s'agit d'une image de l'icône Questions/réponses dans la barre de navigation de gauche.) dans la barre de navigation de gauche.

  2. Sélectionnez l'onglet Sources de données et cliquez sur Ajouter une source de questions/réponses.

  3. Renseignez les champs de la boîte de dialogue en indiquant une langue, un environnement local (si nécessaire) et le fichier de la source de données.

  4. Vous pouvez ajouter des batchs de sources de données en sélectionnant Créer un autre.

  5. Par défaut, la source de données est activée. Si vous devez enlever temporairement des paires de questions/réponses de la source de données, vous pouvez sélectionner Désactivé au lieu de supprimer la source de données.

  6. Cliquez sur Créer.

  7. Entraînez de nouveau les questions/réponses

Modification des paramètres de configuration de la source de données des questions/réponses
  1. Cliquez sur Questions/réponses (Il s'agit d'une image de l'icône Questions/réponses dans la barre de navigation de gauche.) dans la barre de navigation de gauche.

  2. Sélectionnez l'onglet Sources de données.

  3. Positionnez le curseur de la souris sur la source de données pour appeler les icônes Modifier et Supprimer.
    Il s'agit d'une image de l'icône de modification.

  4. Cliquez sur Modifier.

  5. Effectuez l'une des opérations suivantes, puis cliquez sur Enregistrer.

    • Modifiez la langue et l'environnement local.

    • Renommez la source.

    • Remplacez le fichier source existant en cliquant sur Remplacer et en sélectionnant un nouveau fichier.

    • Activez ou désactivez la source.

  6. Entraînez de nouveau le module de questions/réponses.

Ajout de questions et de réponses une à une
  1. Dans l'onglet Sources de données, cliquez sur la source de données.

  2. Cliquez sur Afficher toutes les questions/réponses.

  3. Cliquez sur Ajouter une question.

  4. Renseignez les champs de la boîte de dialogue comme suit, puis cliquez sur Créer.
    • Question canonique : entrez la question qui s'affiche par défaut dans la discussion.

    • Autre : ajoutez d'autres versions de la question canonique. Concentrez-vous simplement sur les différentes formulations que les utilisateurs sont susceptibles d'employer pour poser une même question plutôt que sur la prise en compte de synonymes ou d'erreurs orthographiques courantes.

    • Réponse : ajoutez une réponse concise. Au lieu de donner une explication longue, ajoutez une URL qui redirige les utilisateurs vers des informations plus détaillées. Cette URL est affichée sous forme de texte brut dans la fenêtre du testeur, mais elle apparaîtra sous forme de lien hypertexte lorsque la brique est exécutée sur une plate-forme de messagerie réelle.

    • Catégories : le cas échéant, entrez une catégorie ou sélectionnez-en une dans le menu. (Le menu est rempli avec les catégories du fichier de source de données).

    • Pour les hiérarchies, saisissez une chaîne avec des barres obliques (/).
      Il s'agit d'une image du champ des catégories.

    • Créer un autre : sélectionnez cette option pour ouvrir une nouvelle boîte de dialogue après avoir cliqué sur Créer.

  5. Entraînez de nouveau les questions/réponses

  6. Cliquez sur Fermer dans l'onglet Sources de données.

Remarque

Ces paires de question et de réponse apparaissent dans les limites d'une fenêtre de discussion. Restez concis. Reportez-vous à Instructions relatives aux sources de données.
Modification de questions et de réponses une à une
Même si la majeure partie du développement de contenu se fait par l'intermédiaire du fichier source, vous pouvez ajouter des mises à jour à l'aide de l'onglet Sources de données.
  1. Dans l'onglet Sources de données, accédez à la question ou localisez-la à l'aide de l'un des champs de recherche (catégories et questions/réponses).

  2. Positionnez le curseur sur la question, puis cliquez sur Modifier.

  3. Utilisez la boîte de dialogue Modifier une question pour effectuer les opérations suivantes :
    • Modifier la question canonique.

    • Ajouter d'autres versions de la question.

    • Modifier la réponse.

    • Ajouter ou enlever des catégories.

  4. Cliquez sur Enregistrer.

  5. Entraînez de nouveau le module de questions/réponses.

  6. Cliquez sur Fermer dans l'onglet Sources de données.

Remarque

Vous pouvez également ajouter d'autres versions de la question à l'aide du testeur.
Export de l'ensemble de données de questions/réponses
Vous pouvez exporter l'ensemble de données de questions/réponses complet à des fins de contrôle de version, d'archivage et de sauvegarde.
  1. Dans l'onglet Sources de données, cliquez sur Afficher toutes les questions/réponses.

  2. Sélectionnez le fichier de source de données dans le panneau de gauche.

  3. Cliquez sur Exporter, puis enregistrez le fichier sur votre système.

  4. Cliquez sur Fermer.

Amélioration de la précision à l'aide d'abréviations et de mots ignorés

Nous avons intégré des ensembles de mots ignorés, d'abréviations et de synonymes afin d'améliorer la précision de la fonctionnalité de questions/réponses. Les mots ignorés sont exclus de l'algorithme de mise en correspondance afin de ne pas nuire à la précision. Les listes d'abréviations et de synonymes sont utilisées pour la mise en correspondance des questions de l'utilisateur qui contiennent ces mots. Ces ensembles intégrés sont suffisants pour de nombreuses briques, mais vous pouvez les étoffer pour répondre à des situations uniques.

Vous pouvez ajouter des éléments à ces ensembles via la page Configuration de langue. Dans cette page, vous pouvez modifier les listes de mots ignorés, d'abréviations et de synonymes.

Ajout de mots ignorés, de synonymes et d'abréviations
  1. Sélectionnez l'onglet Configuration de la langue.

  2. Cliquez sur Ajouter une configuration d'entrée.

  3. Renseignez les champs de la boîte de dialogue suivante :
    • Langue : sélectionnez l'une des langues disponibles (mises à disposition par vos sources de données).

    • Type :

      • Mots ignorés : ajoutez des mots qui n'ont rien à apporter aux questions. Les mots doivent être en minuscules.

      • Synonymes : incluez des termes familiers et des synonymes pour chaque mot-clé de la source de données. Créez une entrée distincte pour chaque ensemble de synonymes. Par exemple, argent, moolah, green est une entrée distincte de conjoint, femme, mari, partenaire.
        Description de l'image synonym-entries.png
        Description de l'image synonym-entries.png

      • Abréviations : n'oubliez pas que les questions canoniques peuvent ne pas anticiper la présence d'abréviations.

    • Définition : entrez les termes propres au type (synonymes, mots ignorés ou abréviations).

    • Activé : activez (ou désactivez) les ensembles de mots ignorés, d'abréviations et de synonymes que vous avez ajoutés. Utilisez cette option lorsque vous testez les configurations de langue.

    • Créer un autre : sélectionnez cette option pour revenir à cette boîte de dialogue après avoir cliqué sur Créer.

  4. Cliquez sur Créer.

  5. Entraînez de nouveau le module de questions/réponses.

Test des questions/réponses

La fenêtre Questions/réponses du testeur permet de tester les questions individuellement ou en batch.

Une fois que vous avez entraîné le module de questions/réponses, vous pouvez le tester à l'aide du testeur Essayer les intentions ou les questions/réponses (auquel vous pouvez accéder en cliquant sur Essayer). La réponse de brique peut inclure un carrousel comprenant plusieurs réponses. Contrairement au test des intentions, les questions de questions/réponses ne sont pas des catégories d'intention (par exemple, balances). A la place, des réponses textuelles sont fournies par la ligne content du fichier CSV.

Les capacités de questions/réponses (et non le moteur d'intentions) gèrent les réponses aux variations que vous entrez. Ces réponses se composent d'un ensemble de questions canoniques qui représentent les sujets les plus adaptés (à savoir les réponses fournies par la colonne content du fichier CSV). Ces questions canoniques sont les premières questions saisies dans le champ questions du fichier CSV. Elles sont associées à chaque sujet (c'est-à-dire à la réponse contenue dans le champ content du fichier CSV).
Voici la description de qna-tester-w-precision.png
Description de l'illustration qna-tester-w-precision.png

Test d'une correspondance de questions/réponses

  1. Entraînez le module de questions/réponses.

  2. Ouvrez le testeur en cliquant sur Essayer, puis en sélectionnant Questions/réponses.

  3. Cliquez sur Questions/réponses.

  4. Cliquez éventuellement sur Icône des options du testeur de questions/réponses. pour définir les options de langue et de précision de correspondance :
    • Langue : choisissez une langue (s'il existe des sources de données multilingues).
    • Seuils de correspondance : cliquez sur Modifier pour définir le pourcentage minimal et maximal de jetons qu'une paire de questions/réponses doit contenir afin d'être considérée comme une correspondance (de questions/réponses).
    • Champs de correspondance : cliquez sur Modifier pour sélectionner le ou les champs de questions/réponses qui doivent correspondre au message utilisateur. Les options sont les suivantes :
      • Tout : renvoie les questions/réponses pour lesquelles les mots-clés de l'entrée utilisateur correspondent à n'importe quelle catégorie, question ou réponse.
      • Questions : renvoie les questions/réponses pour lesquelles les mots-clés de l'entrée utilisateur correspondent à n'importe quelle question.
      • Réponses : renvoie les questions/réponses pour lesquelles les mots-clés de l'entrée utilisateur correspondent à n'importe quelle réponse.
      • Catégories : renvoie les questions/réponses pour lesquelles les mots-clés de l'entrée utilisateur correspondent à n'importe quelle catégorie.
      • Questions et catégories : renvoie les questions/réponses pour lesquelles les mots-clés de l'entrée utilisateur correspondent à n'importe quelle catégorie ou réponse.
  5. Entrez une variation, puis cliquez sur Envoyer.

  6. Si nécessaire, cliquez sur Ajouter à la question, puis entraînez de nouveau le module de questions/réponses.

Création du fichier CSV pour les tests en batch

Les tests en batch vous permettent de tester votre brique à l'aide d'un fichier CSV contenant les questions auxquelles votre brique doit répondre correctement, ainsi que les questions canoniques (les correspondances de questions/réponses) renvoyées par votre brique par ordre de priorité. Le fichier CSV décrit ces informations à l'aide de la ligne d'en-tête dont les colonnes sont les suivantes (de gauche à droite) : languageTag, question, match-1, match-2, match-3, etc.
  • languageTag : code à cinq lettres qui représente la langue et l'environnement local dans lesquels la question de test et les questions de correspondance sont exprimées. Par exemple, en-US.

  • question : question de test. Cette question n'a pas besoin de correspondre aux questions d'entraînement, mais elle doit représenter une question courante qu'un utilisateur est susceptible de poser pour le sujet donné.

  • match-1 match-2 … : les premières questions canoniques que la question de test est censée obtenir. Nous affichons les questions canoniques pour toutes les correspondances de questions/réponses. Si la question de test ne doit renvoyer qu'une seule correspondance de questions/réponses, entrez la question dans la colonne match-1 et laissez les autres colonnes de correspondance vides.

  • queryInfo : objet JSON qui utilise offset et categoryPath pour effectuer une analyse descendante sur la catégorie, ainsi que pour définir un décalage et une limite de pagination.
    "{""offset"":0,""categoryPath"":[""General Account Information""],""limit"":3}"
Ce fichier CSV sert de base de référence pour les correspondances de questions/réponses attendues. Utilisez-le dans différentes versions de la brique pour assurer un comportement cohérent. Vous pouvez ajouter les données manuellement ou modifier le journal de conversation de questions/réponses. Test en batch du module de questions/réponses explique comment obtenir ce fichier et le modifier à l'aide du testeur. Une fois que vous avez terminé votre ensemble de référence, vous ne devez apporter des mises à jour qu'en cas de modifications importantes de la source de données de questions/réponses.

Test en batch du module de questions/réponses

Si vous effectuez un test avec un fichier CSV dérivé du journal de conversation de questions/réponses, vous devez effectuer les opérations suivantes :
  • Ajoutez et configurez le composant System.Qna dans le flux de dialogue, puis discutez avec la brique pour créer un historique de conversation.

  • Discutez avec la brique pour créer un historique de conversation.

  • Exportez le journal de conversation de questions/réponses à l'aide du menu situé dans la mosaïque de la brique en sélectionnant l'option Journal de conversation de questions/réponses dans la boîte de dialogue Exporter le journal de conversation.

Pour effectuer un test en batch, procédez comme suit :
  1. Dans la fenêtre de test des questions/réponses, activez l'option Batch.

  2. Sélectionnez la langue.

  3. Cliquez sur Charger.

  4. Définissez les options de test dans la boîte de dialogue Charger les questions/réponses, puis cliquez sur Tester.

    • Nombre maximal de tests simultanés : nombre de tests exécutés en parallèle. L'augmentation du nombre de tests simultanés peut accélérer les tests mais peut également saturer le système.

    • Correspondances à inclure : définit le nombre de correspondances de questions/réponses à inclure dans le test.

    • Correspondances requises dans le même ordre : permet de déterminer la réussite ou l'échec d'une correspondance en fonction de sa présence parmi les correspondances les mieux classées ou de sa position par rapport à celles-ci.

    • Si elle est désactivée, cette option vous permet de vérifier des correspondances lorsque les utilisateurs saisissent des mots-clés au lieu de questions complètes.

    • Seuils de correspondance : cliquez sur Modifier pour définir le pourcentage minimal et maximal de jetons qu'une paire de questions/réponses doit contenir afin d'être considérée comme une correspondance (de questions/réponses).

      Conseil :

      Définissez la même valeur ici que pour les propriétés qnaMiniumumMatch et minimumMatch. Pour en savoir plus sur la définition des différents niveaux, reportez-vous à System.Intent et System.Qna.
    • Champs de correspondance : cliquez sur Modifier pour sélectionner le ou les champs de questions/réponses qui doivent correspondre au message utilisateur. Les options sont les suivantes :
      • Tout : renvoie les questions/réponses pour lesquelles les mots-clés de l'entrée utilisateur correspondent à n'importe quelle catégorie, question ou réponse.
      • Questions : renvoie les questions/réponses pour lesquelles les mots-clés de l'entrée utilisateur correspondent à n'importe quelle question.
      • Réponses : renvoie les questions/réponses pour lesquelles les mots-clés de l'entrée utilisateur correspondent à n'importe quelle réponse.
      • Catégories : renvoie les questions/réponses pour lesquelles les mots-clés de l'entrée utilisateur correspondent à n'importe quelle catégorie.
      • Questions et catégories : renvoie les questions/réponses pour lesquelles les mots-clés de l'entrée utilisateur correspondent à n'importe quelle catégorie ou réponse.
      Les tests ayant échoué sont affichés en haut des résultats.
  5. Pour les correspondances de questions/réponses ayant réussi le test, vous pouvez effectuer une analyse descendante, ajouter d'autres versions des questions, modifier les réponses, puis entraîner de nouveau le module de questions/réponses. Ces ajouts sont effectués à la source de données qui prédéfinit la brique, et non aux données de test.

Comment configurer le flux de dialogue pour les questions/réponses ?

Le menu Ajouter des composants (en haut à gauche de la page de flux de dialogue) vous permet de prendre en charge des questions/réponses dans un flux de dialogue mode YAML en ajoutant l'un des trois modèles de composant suivants :
  • Intention et questions/réponses : ajoute le composant System.Intent mais intègre des propriétés qui définissent l'acheminement de transition vers le composant de questions/réponses lorsque la variation est identifiée comme une question, et non comme une demande transactionnelle. Propriétés de questions/réponses pour le composant System.Intent décrit ces propriétés et Création d'une brique avec des flux d'intention et de questions/réponses présente le processus général de création d'une brique comportant les fonctionnalités des intentions et des questions/réponses.

  • Questions/réponses : ajoute un modèle doté d'une configuration minimale pour un composant System.Intent.

  • Questions/réponses avancées : identique au modèle Questions/réponses, à la différence qu'il fournit des propriétés facultatives pour permettre un contrôle plus précis.
    • Configuration keepTurn permettant d'abandonner ou de conserver le contrôle de la brique dans le flux de dialogue.

    • Modularité (appel d'une brique de questions/réponses dédiée). Reportez-vous à Briques de questions/réponses réutilisables.

    • Dimensionnement et pagination des questions/réponses.

Pour ajouter ces modèles, procédez comme suit :
  1. Cliquez sur Flux dans la barre de navigation de gauche.

  2. Cliquez sur Ajouter des composants en haut à gauche de la page. (Vous devrez peut-être faire défiler l'écran si ce bouton n'est pas visible).

  3. Sélectionnez la palette de composants Langue.

  4. Choisissez l'un des trois modèles de questions/réponses, puis utilisez le menu Insérer après pour le placer dans la définition du flux de dialogue. Cliquez sur Appliquer.
    Remarque

    Pour implémenter la prise en charge des questions/réponses, vous devez ajouter un nouveau composant System.Intent (à l'aide du modèle Intention et questions/réponses) à la définition du flux de dialogue, ou modifier un composant System.Intent existant pour activer les transitions vers le composant de questions/réponses.

Création d'une brique avec des flux d'intention et de questions/réponses

  1. Ajoutez le modèle Intention et questions/réponses au flux de dialogue (accessible à partir de Langue).

  2. Pour le composant System.Intent, définissez les éléments suivants :
    • Ajoutez qnaEnable: true pour activer le routeur :
      intent:
        component: "System.Intent"
        properties:
          variable: "iResult"
          qnaEnable: true
      
    • Définissez une action de transition vers l'état de questions/réponses :
          transitions:
            actions:
              Balances: "startBalances"
              Transactions: "startTxns"
              Send Money: "startPayments"
              Track Spending: "startTrackSpending"
              Dispute: "setDate"
              unresolvedIntent: "unresolved"
              qna: "qna"
      
      Si la résolution de l'intention est inférieure au seuil de confiance, la brique déclenche l'action qna que le moteur de dialogue transmet à l'état qna. Dans ce cas, le message de la brique inclut uniquement le lien Afficher les réponses.
      qna:
          component: "System.QnA"
          transitions:
            actions:
              none: "unresolved"
            next: "intent"
      unresolved:
          component: "System.Output"
          properties:
            text: "Sorry I don't understand that question!"
          transitions:
            return: "unresolved"
      
      Toutefois, lorsque le moteur d'intentions peut aussi bien résoudre le message au-delà du seuil de confiance que mettre en correspondance une question/réponse, le message de la brique comporte des liens à la fois vers l'intention et vers la réponse de questions/réponses.Toutefois, lorsque le moteur d'intentions classe le message comme une demande plutôt que comme une question, la brique contourne les questions/réponses et l'achemine vers le flux d'intention. Dans ce cas, le message contient uniquement l'option d'intention.

      Vous pouvez modifier ce comportement en ajoutant des mots et des expressions qui clarifient l'acheminement de l'intention et en définissant la propriété de System.Intent appelée qnaSkipIfIntentFound.

Exemples de dialogue de questions/réponses
Acheminement des questions/réponses pour le composant System.Intent
Le fragment de code suivant montre l'activation du routeur par la propriété qnaEnable du composant System.Intent. Il illustre également la transition vers l'état contenant le module de questions/réponses et vers l'état de questions/réponses lui-même.

...
  mainIntent:
    component: "System.Intent"
    properties:
      variable: "userInput"
      sourceVariable: "translated"
      qnaEnable: true
      qnaMatchFields: "categories+questions"
    transitions:
      actions:
        Greeting: "greeting"
        Inspire Me: "recommendCategories"
        Returns: "startReturn"
        qna: "qna"
        View Reports: "setMobilePhone"
        TrackOrders: "showOrderStatus"
        unresolvedIntent: "unresolved"
        Vision: "visionBasedProducts"
        Shipping: "startShipping"
...
  qna:
    component: "System.QnA"  
Prise en charge des questions/réponses en langue étrangère et en plusieurs langues
Utilisez cette configuration pour les briques qui prennent en charge des langues étrangères.
  1. Créez un fichier de source de données propre à la langue cible.
    Remarque

    Les sources de données en chinois ne sont pas prises en charge.
  2. Si nécessaire, ajoutez des synonymes ou mettez à jour les mots ignorés.

  3. Configurez un service de traduction. Reportez-vous à Ajout d'un service de traduction à la brique.

  4. Si la brique inclut également des fonctions transactionnelles, ajustez la configuration de l'acheminement.

  5. Configurez le flux de dialogue pour la prise en charge de plusieurs langues. Par exemple :
    metadata:
      platformVersion: "1.0"
    main: true
    name: "ChipCardMultipleLingualQnA"
    context:
      variables:
        greeting: "string"
        name: "string"
        cancelChoice: "string"
        rb: "resourcebundle"
    states:
      detect:
        component: "System.DetectLanguage"
        properties:
          ...
        transitions:
          ...
      qna:
        component: "System.QnA"
        properties:
          botName: "ChipCardMultipleLingualQnA"
          matchFields: "categories+questions"
          viewAnswerLabel: "${rb.viewAnswerLabel}"
          moreAnswersLabel: "${rb.moreAnswersLabel}"
        transitions:
          actions:
            none: "unresolved"
          next: "detect"
      unresolved:
        component: "System.Output"
        properties:
          text: "${rb.NoMatch}"
        transitions:
          return: "done"    
Briques de questions/réponses réutilisables

Vous pouvez modulariser vos définitions de flux de dialogue en créant des briques de questions/réponses réutilisables pouvant être appelées à l'aide des propriétés botName et QnaBotName qui appartiennent aux composants System.Intent et System.QnA.

Exemple : propriété botName

...
states:
  qna:
    component: "System.QnA"
    properties:
      botName: "FinancialQnABot"
    transitions:
      actions:
        none: "unresolved"
      next: "qna"
  unresolved:
    component: "System.Output"
    properties:
      text: "Sorry, I did not find any match. Can you rephrase the question?"
    transitions:
      return: "done"

Exemple : botName et QnABotName

Dans ce fragment de code, les éléments botName et QnABotName ont la même valeur.
states:
  intent:
    component: "System.Intent"
    properties:
      botName: "FinancialQnABot"
      qnaMatchFields: "categories+questions"
      variable: "iResult"
      qnaEnable: true
    transitions:
      actions:
        Balances: "startBalances"
        Transactions: "startTxns"
        Send Money: "startPayments"
        Track Spending: "startTrackSpending"
        Dispute: "setDate"
        unresolvedIntent: "unresolved"
        qna: "qna"
...

  qna:
    component: "System.QnA"
    properties:
      botName: "FinancialQnABot"
      matchFields: "categories+questions"   
    transitions:
      actions:
        none: "unresolved"
      next: "intent"

Exemple : botName et qnaBotName dans System.Intent

Ce fragment de code illustre la propriété botName dans deux contextes différents : dans le composant System.Intent, où elle appelle une brique transactionnelle et dans le composant System.Qna, où elle appelle une brique de questions/réponses.
states:
  intent:
    component: "System.Intent"
    properties:
      botName: "FinancialBot"
      qnaBotName: "FinancialQnABot"
      variable: "iResult"
      qnaEnable: true
    transitions:
      actions:
        Balances: "startBalances"
        Transactions: "startTxns"
        Send Money: "startPayments"
        Track Spending: "startTrackSpending"
        Dispute: "setDate"
        unresolvedIntent: "unresolved"
        qna: "qna"
...

  qna:
    component: "System.QnA"
    properties:
      botName: "FinancialQnABot"   
    transitions:
      actions:
        none: "unresolved"
      next: "intent"

Configuration de l'acheminement des intentions et des questions/réponses

Nous fournissons des mots et des expressions d'introduction couramment utilisés qui indiquent des commandes ou des questions sur la page de configuration de l'acheminement des questions/réponses. Vous pouvez ajouter le contenu propre à un domaine à cette page qui permet au routeur de distinguer les questions/réponses des intentions. La procédure est la suivante :

  1. Cliquez sur Paramètres (Icône Paramètres) dans la barre de navigation de gauche.

  2. Cliquez sur Configuration de l'acheminement des questions/réponses.

  3. Sélectionnez une langue.

  4. Ajoutez ou enlevez des mots et des expressions dans les catégories suivantes qui influent sur l'acheminement de l'intention.
    • Configuration des transactions : vous pouvez ajouter des verbes et des expressions qui aident le moteur d'intentions à identifier un message comme étant une transaction.
      • Verbes de demande supplémentaires : les messages commençant par des demandes ou des commandes telles que buy, check ou cancel sont considérés comme étant transactionnels et sont acheminés vers une intention. Ces mots à l'impératif indiquent une transaction, et non une question.

        Nous entretenons une bibliothèque des verbes à l'impératif les plus courants pour chaque langue prise en charge. Parmi eux figurent des mots tels que payez, enlevez et terminez. Vous pouvez ajouter des verbes de demande propres à une entreprise ou à un public visé.

      • Développement des verbes de requête : ensemble de préfixes (un, dis, re) qui, lorsqu'ils sont appliqués aux verbes de demande ajoutés au champ Verbes de demande supplémentaires, contribuent à l'augmentation du vocabulaire permettant d'identifier un message comme étant lié à une intention.

      • Préfixe de phrase de demande : mots et expressions associés aux demandes, comme Can you et Do not. Les messages commençant par ces mots sont acheminés en tant qu'intentions. Nous tenons à jour une bibliothèque de mots et d'expressions orientés transaction que vous pouvez modifier.
    • Configuration des questions : ensemble de mots et d'expressions couramment utilisés dans les questions. Il comprend des expressions telles que how do I et I need to know. Elles indiquent qu'un utilisateur pose une question, mais ne demande pas une transaction. Lorsqu'une brique reçoit un message commençant par l'une de ces expressions, elle optimise sa réponse en accordant plus d'importance au lien de la réponse de questions/réponses qu'à celui de la réponse d'intention. C'est l'inverse du comportement général, dans lequel la brique accorde plus d'importance aux intentions qui présentent un score supérieur au seuil de confiance configuré. Par exemple, si la brique reçoit le message How do I terminate my policy, elle peut facilement déterminer que l'utilisateur recherche des informations et place donc le lien Afficher les réponses en premier.

      Lorsque la saisie utilisateur est ambiguë, le lien de questions/réponses ne peut pas ne pas arriver en tête du classement. Par exemple, le routeur risque de ne pas réussir à déterminer si la phrase can I terminate my policy est une intention ou une question/réponse. La brique affiche les deux options, car le score de l'intention dépasse le seuil de confiance et qu'il existe une question correspondante, mais elle classe l'intention en premier.
      Description de l'image prioritized-intent-response.png
      Description de l'illustration prioritized-intent-response.png