FAQ

Note

À partir de la version 22.04, la fonction de FAQ est progressivement supprimée et remplacée par la fonction de connaissances. La fonctionnalité Knowledge présente d'importants avantages par rapport à la fonctionnalité Q&A, à savoir :

  • Vous pouvez générer des intentions de réponse dans votre compétence directement à partir de FAQ ou de documents de la base de connaissances existants. Vous n'avez pas besoin de formater manuellement ces documents avant de les importer dans votre compétence. En outre, des exemples d'énoncés sont générés pour chaque intention.
  • Dans les conversations avec la compétence, les intentions de réponse générées sont résolues avec le TLN, comme les intentions normales. Vous n'avez pas besoin de propriétés ou de composants propres aux FAQ pour gérer ces intentions.

En outre, la fonction de FAQ ne fonctionne pas dans les flux de dialogue développés en mode visuel.

Si vous avez une compétence existante qui comporte un module de FAQ, vous pouvez continuer à utiliser ce module de FAQ dans les versions futures de la compétence. Toutefois, nous vous recommandons de passer à l'utilisation d'intentions de réponse (à l'aide de la fonction Connaissances ou en créant manuellement des intentions de réponse). Voir Intentions de réponse.

La fonction de FAQ permet à votre compétence de répondre à des questions d'intérêt général en retournant une ou plusieurs paires question-réponse. Vous pouvez ainsi vous servir d'une compétence pour présenter une FAQ ou d'autres documents provenant d'une base de connaissances.

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

Ajout de questions et réponses à une compétence

Voici un aperçu de l'ajout d'une FAQ à une compétence à l'aide de la fonction de FAQ :
  1. Activez cette fonction en cliquant sur Q&A (FAQ) (Ceci est une image de l'icône de la barre de navigation de FAQ gauche.) dans la barre de navigation gauche. Cliquez ensuite sur Add Q&A (Ajouter une FAQ).

    Note

    Cela n'est possible que dans les compétences qui ont été créées en mode de dialogue YAML.
  2. Chargez les fichiers sources (au format CSV) contenant les paires question-réponse catégorisées. La rubrique Créer le fichier de source de données décrit le format du fichier et fournit des directives relatives à son contenu.
    Description d'ad-qna-source.png :
    Description de l'illustration add-qna-source.png

  3. Vous pouvez, si nécessaire, modifier les questions et les réponses. Vous pouvez aussi en ajouter ou en supprimer.
  4. Entraînez la compétence à l'aide de l'outil d'entraînement de FAQ.
    Description du train-w-qna.png :
    Description de l'illustration train-w-qna.png

  5. Testez la nouvelle fonction de FAQ en entrant des questions dans le testeur de FAQ. Dans le cadre du test, vous devez ajouter d'autres questions à la source de données pour améliorer la fonction de reconnaissance de question. Vous devez relancer l'entraînement si vous ajoutez ou modifiez quoi que ce soit dans la source de données.

  6. Pour utiliser une FAQ dans le flux de dialogue d'une compétence, vous devez configurer le composant System.Qna. Vous devez également ajouter une transition qui référence ce nouveau composant dans le composant System.Intent pour que les questions de FAQ soient acheminées vers le composant de FAQ. Voir Comment configurer le flux de dialogue pour les FAQ?.
  7. Ajoutez un état à l'action none et ajoutez qna pour la transition next afin de revenir au composant de FAQ lorsque la question obtient une réponse :
      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 compétence.

Créer le fichier de source de données

Le fichier de source de données pour le contenu de FAQ doit être un fichier CSV codé en UTF-8. Ce fichier comporte une rangée d'en-têtes dont les valeurs sont (de gauche à droite) category_path, questions et content.
Colonne Contenu
category_path

Catégorie (ou catégories) pour une paire question-réponse donnée.

Lorsqu'une paire question-réponse appartient à plusieurs catégories, ajoutez chaque catégorie sur une ligne distincte.

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

questions

Questions qui s'affichent pour l'utilisateur. Ajoutez les versions secondaires de chaque question sur une nouvelle ligne. La première question, nommée question canonique, est celle qui s'affiche par défaut dans le message de la compétence. Les questions suivantes dans la colonne sont les versions secondaires.
Ceci est une image du fichier CSV.

content

Réponses.

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

Directives relatives à la source de données

  • L'ajout de plusieurs questions pour chaque réponse augmente la probabilité de retourner des paires question-réponse pertinentes aux utilisateurs. Créez 2 à 5 questions pour chaque réponse. Fournissez suffisamment de questions pour couvrir les différentes tournures dont l'utilisateur se servirait pour s'informer sur un sujet. Pensez à varier le sujet (mais restez cohérent quant au thème de la réponse), le verbe et les pronoms interrogatifs tels que "comment", "quoi", "où", etc. Par exemple, Comment d'argent ai-je? peut être reformulé comme suit :
    • Comment obtenir le solde de mon compte?

    • Où trouver le solde de mon compte?

    • Puis-je obtenir le solde de mon compte?

  • N'oubliez pas que toutes ces questions doivent conduire à la même réponse.

  • Il n'est pas nécessaire de créer des questions secondaires uniquement pour gérer les termes, synonymes et fautes de frappe fréquemment rencontrés. Vous pouvez utiliser la page de configuration des langues pour ajouter des synonymes ou des abréviations. Les fautes de frappe sont traitées automatiquement.

  • Faites des réponses aussi courtes que possible. Fournissez un lien pour des informations plus détaillées. Les liens de FAQ ne peuvent pas être masqués, ce qui signifie que vous ne pouvez pas utiliser <a href> pour spécifier un nom de site. Les liens doivent être explicites (http://www.myanswers.com/answer/topic1.html, par exemple).

  • Utilisez toujours du texte brut.

  • Les utilisateurs sont intéressés par les trois premières correspondances pour obtenir les informations qu'ils souhaitent. Bien que vous deviez vous concentrer sur la correspondance supérieure, l'objectif doit être d'assurer que les informations demandées et les informations connexes figurent dans les trois premières correspondances.

  • Créez un fichier de test par lots lorsque vous mettez à jour votre source de données. Ce fichier doit contenir toutes les questions pour lesquelles vous voulez vérifier la réponse de la compétence. Pour en savoir plus sur ce fichier, voir Créer le fichier CSV pour le test par lots.

Gestion des modules et des sources de données de FAQ

Ajouter d'autres sources de données
Vous pouvez ajouter des fichiers de questions et de réponses supplémentaires pour étendre la fonction de FAQ. Pour charger un autre fichier CSV en UTF-8 dans une nouvelle source de données de FAQ :
  1. Cliquez sur Q&A (FAQ) (Ceci est une image de l'icône de la barre de navigation de FAQ gauche.) dans la barre de navigation gauche.

  2. Sélectionnez l'onglet Data Sources (Sources de données), puis cliquez sur Add Q&A Source (Ajouter une source de FAQ).

  3. Complétez la boîte de dialogue en entrant la langue, les paramètres régionaux (le cas échéant) et le fichier de source de données.

  4. Vous pouvez ajouter des lots de sources de données en sélectionnant Create Another (Créer un autre).

  5. Par défaut, la source de données est activée. Si vous devez supprimer temporairement des paires question-réponse, vous pouvez sélectionner Disabled (Désactivé) au lieu de supprimer la source de données.

  6. Cliquez sur Create (Créer).

  7. Entraînez de nouveau le module de FAQ.

Modifier les paramètres de configuration de la source de données de FAQ
  1. Cliquez sur Q&A (FAQ) (Ceci est une image de l'icône de la barre de navigation de FAQ gauche.) dans la barre de navigation gauche.

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

  3. Positionnez la souris sur la source de données pour appeler les icônes Edit (Modifier) et Delete (Supprimer).
    Ceci est une image de l'icône Edit (Modifier).

  4. Cliquez sur Edit (Modifier).

  5. Effectuez l'une des actions suivantes, puis cliquez sur Save (Enregistrer).

    • Modifiez la langue et les paramètres régionaux.

    • Renommez la source.

    • Pour remplacer le fichier source existant, cliquez sur Replace (Remplacer) et sélectionnez un nouveau fichier.

    • Activez ou désactivez la source.

  6. Entraînez de nouveau le module de FAQ.

Ajouter des questions et des réponses une par une
  1. Dans l'onglet Data Sources (Sources de données), cliquez sur la source de données.

  2. Cliquez sur View All Q&A (Voir toutes les FAQ).

  3. Cliquez sur Add Question (Ajouter une question).

  4. Complétez la boîte de dialogue comme suit, puis cliquez sur Create (Créer).
    • Canonical Question (Question canonique)—Entrez la question qui s'affiche par défaut dans le clavardage.

    • Alternative—Ajoutez une ou plusieurs variantes de la question canonique. Gardez à l'esprit que vous devez juste vous concentrer sur les différentes façons dont les utilisateurs peuvent poser la même question, non sur les synonymes ou les fautes d'orthographe communes.

    • Answer (Réponse) --Ajoutez une réponse concise. Au lieu d'une réponse longue, ajoutez une URL qui dirige les utilisateurs vers des informations plus détaillées. Cette URL s'affichera en texte brut dans la fenêtre du testeur, mais sera affichée sous forme d'hyperlien lorsque la compétence sera exécutée sur une plate-forme de messagerie réelle.

    • Categories—S'il y a lieu, entrez une catégorie ou sélectionnez-en une dans le menu. (Le menu est alimenté par les catégories du fichier de source de données).

    • Pour les hiérarchies, entrez une chaîne avec des barres obliques (/).
      Ceci est une image du champ Categories.

    • Create another (Créer une autre)—Sélectionnez cette option pour ouvrir une nouvelle boîte de dialogue après avoir cliqué sur Create (Créer).

  5. Entraînez de nouveau le module de FAQ.

  6. Cliquez sur Close (Fermer) dans l'onglet Data Sources (Sources de données).

Note

N'oubliez pas que ces paires question-réponse s'affichent dans une fenêtre de clavardage. Faites court. Voir Directives relatives à la source de données.
Modifier des questions et des réponses une par une
Même si la plus grande partie du développement de votre contenu se fait au moyen du fichier source lui-même, vous pouvez ajouter des mises à jour à l'aide de l'onglet Data Sources (Sources de données).
  1. Dans l'onglet Data Sources, allez à la question ou localisez-la avec un des champs de recherche (catégories, question et réponse).

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

  3. Utilisez la boîte de dialogue Edit Question (Modifier la question) pour :
    • Modifier la question canonique.

    • Ajouter d'autres questions secondaires.

    • Modifier la réponse.

    • Ajouter ou supprimer des catégories.

  4. Cliquez sur Save (Enregistrer).

  5. Entraînez de nouveau le module de FAQ.

  6. Cliquez sur Close (Fermer) dans l'onglet Data Sources (Sources de données).

Note

Vous pouvez également ajouter des questions secondaires au moyen du testeur.
Exporter le jeu de données de FAQ
Vous pouvez exporter le jeu des données de FAQ dans sa totalité pour contrôler, archiver et sauvegarder des versions.
  1. Dans l'onglet Data Sources (Sources de données), cliquez sur View All Q&A (Voir toutes les FAQ).

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

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

  4. Cliquez sur Close (Fermer).

Précision accrue avec les abréviations et les mots ignorés

Nous fournissons des jeux intégrés de mots ignorés, d'abréviations et de synonymes pour améliorer la précision de la fonction de FAQ. Les mots ignorés sont exclus de l'algorithme de mise en correspondance afin qu'ils ne réduisent pas la précision. Les listes d'abréviations et de synonymes servent à mettre en correspondance les questions de l'utilisateur qui contiennent ces mots. Les jeux intégrés suffisent pour de nombreuses compétences, mais vous pouvez les compléter pour gérer des situations uniques.

Les ajouts sont effectués dans la page Language Configuration (Configuration des langues). À partir de cette page, vous pouvez modifier les listes de mots ignorés, d'abréviations et de synonymes.

Ajouter des mots ignorés, des synonymes et des abréviations
  1. Sélectionnez l'onglet Language Config (Configuration des langues).

  2. Cliquez sur Add Config Entry (Ajouter une entrée de configuration).

  3. Complétez la boîte de dialogue :
    • Language (Langue)—Sélectionnez une langue parmi celles disponibles (selon vos sources de données).

    • Type :

      • Ignored words (Mots ignorés) : Ajoutez des mots qui n'apportent aucune valeur aux questions. Ils doivent être en minuscules.

      • Synonyms (Synonymes)—Indiquez les mots familier ou autres pouvant être utilisés à la place de chaque mot clé de la source de données. Créez une entrée distincte pour chaque jeu de synonymes. Par exemple, l'entrée money, moolah, green constitue une entrée distincte de conjoint, femme, mari, partenaire.
        Description du synonyme-entries.png :
        Description de l'illustration synonyme-entries.png

      • Abbreviations (Abréviations)—Gardez à l'esprit que les questions canoniques ne sont pas censées comporter des abréviations.

    • Definition (Définition)—Entrez des termes spécifiques à chaque type (synonymes, mots ignorés ou abréviations).

    • Enabled (Activé)—Active (ou désactive) les séries de mots ignorés, d'abréviations ou de synonymes. Utilisez cette option lorsque vous testez des configurations de langue.

    • Create another (Créer une autre)—Utilisez cette option pour retourner dans la boîte de dialogue après avoir cliqué sur Create (Créer).

  4. Cliquez sur Create (Créer).

  5. Entraînez de nouveau le module de FAQ.

Test de FAQ

La fenêtre FAQ du testeur vous permet de tester vos questions une par une ou par lots.

Après avoir entraîné le module de FAQ, vous pouvez le tester à l'aide du testeur Try Out Intents/Q&A (Tester les intentions/FAQ) (accessible en cliquant sur Try It Out! (Tester)). La réponse de la compétence peut comprendre un carrousel de plusieurs réponses. Contrairement ce qui se passe pour les tests d'intentions, les réponses aux questions de FAQ ne sont pas des catégories d'intention (par exemple, balances), mais des réponses textuelles fournies par la rangée content du fichier CSV.

C'est la fa fonction de FAQ (et non le moteur d'intention) qui traite les réponses aux énoncés que vous entrez. Ces réponses consistent en un ensemble de questions canoniques qui représentent les sujets les plus appropriés (réponses fournies dans la colonne content du fichier CSV). Ces questions canoniques sont les premières questions entrées dans le champ questions du fichier CSV pour chaque sujet (c'est-à-dire la réponse dans le champ content du fichier CSV).
Description de qna-tester-w-precision.png :
Description de l'illustration qna-tester-w-precision.png

Tester une correspondance de FAQ

  1. Entraînez le module de FAQ.

  2. Ouvrez le testeur en cliquant sur Try it Out! (Tester), puis en sélectionnant Q&A (FAQ).

  3. Cliquez sur Q&A (FAQ).

  4. Facultativement, cliquez sur Icône des options du testeur QA. pour définir les options de langue et de précision de correspondance :
    • Language (Langue)—Choisissez une langue (si les sources de données sont multilingues).
    • Match Thresholds (Seuils de correspondance)—Cliquez sur Edit (Modifier) pour définir les pourcentage minimum et maximum de jetons qu'une paire question-réponse doit contenir pour être considérée comme une correspondance (c'est-à-dire, une correspondance de FAQ).
    • Match Fields (Champs de correspondance)—Cliquez sur Edit (Modifier) pour sélectionner les champs de FAQ qui doivent correspondre au message de l'utilisateur. Les options sont les suivantes :
      • All (Tout)—Retourne la FAQ où les mots clés de l'entrée de l'utilisateur correspondent à une catégorie, à une question ou à une réponse.
      • Questions—Retourne la FAQ où les mots clés de l'entrée de l'utilisateur correspondent aux questions.
      • Answers (Réponses)—Retourne la FAQ où les mots clés de l'entrée de l'utilisateur correspondent à la réponse.
      • Categories (Catégories)—Retourne la FAQ où les mots clés de l'entrée de l'utilisateur correspondent à une catégorie.
      • Questions & Categories (Questions et catégories)—Retourne la FAQ où les mots clés de l'entrée de l'utilisateur correspondent à la catégorie ou à la réponse.
  5. Entrez un énoncé et cliquez sur Send (Envoyer).

  6. Au besoin, cliquez sur Add to Question (Ajouter à la question), puis entraînez de nouveau le module de FAQ.

Créer le fichier CSV pour un test par lots

Pour les tests par lots, vous testez votre compétence à l'aide d'un fichier CSV contenant les questions auxquelles elle doit répondre correctement ainsi que les questions canoniques (correspondances de FAQ) qu'elle retourne en priorité. Le fichier CSV décrit ce processus à l'aide de la rangée d'en-tête dont les colonnes (de gauche à droite) sont : languageTag, question, match-1, match-2, match-3 etc.
  • languageTag—Code de cinq lettres représentant la langue et les paramètres régionaux dans lesquels la question de test et les questions correspondantes sont exprimées. Par exemple, en-US.

  • question-Question de test. Cette question n'a pas besoin de correspondre à une des questions d'entraînement, mais elle doit représenter une question typique qu'un utilisateur pourrait poser sur le sujet donné.

  • match-1 match-2 …— Première question canonique que, selon vous, la question de test doit extraire. Nous affichons les questions canoniques pour toutes les correspondances de FAQ. Si la question de test ne doit retourner qu'une seule correspondance de FAQ, 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 un forage par catégorie, et "offset" et "limit" pour la pagination.
    "{""offset"":0,""categoryPath"":[""General Account Information""],""limit"":3}"
Ce CSV sert de référence pour les correspondances de FAQ attendues. Utilisez-le dans différentes versions de la compétence pour assurer un comportement cohérent. Vous pouvez ajouter les données manuellement ou modifier le journal de conversation de FAQ. La rubrique Tester le module de FAQ par lots décrit comment obtenir ce fichier et comment le modifier avec le testeur. Une fois le jeu idéal terminé, vos actualisations auront seulement besoin de refléter les mises à jour importantes de la source de données de FAQ.

Tester le module de FAQ par lots

Si vous utilisez un fichier CSV dérivé du journal de conversation de FAQ pour le test, vous devez :
  • Ajouter et configurer le composant System.Qna dans le flux de dialogue, puis clavarder avec la compétence pour créer un historique de conversation.

  • Clavarder avec la compétence pour créer l'historique de conversation.

  • Exporter le journal de conversation de FAQ à l'aide du menu dans la vignette de la compétence en sélectionnant l'option QnA Conversation Log (Journal de conversation de FAQ) dans la boîte de dialogue Export Conversation Log (Exporter le journal de conversation).

Pour effectuer un test par lots :
  1. Dans la fenêtre de test de FAQ, activez l'option Batch (Lot).

  2. Sélectionnez la langue.

  3. Cliquez sur Load (Charger).

  4. Définissez les options de test dans la boîte de dialogue Load QnA (Charger FAQ), puis cliquez sur Test.

    • Maximum number of concurrent tests (Nombre maximum 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 le processus mais entraîner une charge importante du système.

    • Matches to Include (Correspondances à inclure)—Définit le nombre de correspondances de FAQ à inclure dans le test.

    • Require matches in same order (Exiger des correspondances dans le même ordre)—Vous permet de valider ou de rejeter une correspondance suivant son inclusion, ou sa position, dans les meilleures correspondances.

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

    • Match Thresholds (Seuils de correspondance)—Cliquez sur Edit (Modifier) pour définir les pourcentage minimum et maximum de jetons qu'une paire question-réponse doit contenir pour être considérée comme une correspondance (c'est-à-dire, une correspondance de FAQ).

      Conseil :

      Définissez ici la valeur indiquée pour les propriétés qnaMiniumumMatch et minimumMatch. Pour en savoir plus sur la définition des différents niveaux, voir System.Intent et System.Qna.
    • Match Fields (Champs de correspondance)—Cliquez sur Edit (Modifier) pour sélectionner les champs de FAQ qui doivent correspondre au message de l'utilisateur. Les options sont les suivantes :
      • All (Tout)—Retourne la FAQ où les mots clés de l'entrée de l'utilisateur correspondent à une catégorie, à une question ou à une réponse.
      • Questions—Retourne la FAQ où les mots clés de l'entrée de l'utilisateur correspondent aux questions.
      • Answers (Réponses)—Retourne la FAQ où les mots clés de l'entrée de l'utilisateur correspondent à la réponse.
      • Categories (Catégories)—Retourne la FAQ où les mots clés de l'entrée de l'utilisateur correspondent à une catégorie.
      • Questions & Categories (Questions et catégories)—Retourne la FAQ où les mots clés de l'entrée de l'utilisateur correspondent à la catégorie ou à la réponse.
      Les tests qui ont échoué sont affichés en tête des résultats.
  5. Pour les correspondances de FAQ qui réussissent, vous pouvez effectuer un forage et ajouter d'autres questions, modifier les réponses, puis entraîner de nouveau le module de FAQ. Ces ajouts sont apportés à la source de données qui alimente la compétence, et non aux données de test.

Comment configurer le flux de dialogue pour les FAQ?

À l'aide du menu Add Components (Ajouter des composants) ( situé en haut à gauche de la page du flux de dialogue), vous pouvez prendre en charge les FAQ dans un flux de dialogue YAML mode (Mode YAML) en ajoutant l'un des trois modèles de composant suivants :
  • Intent and QnA—Ajoute le composant System.Intent, mais avec les propriétés qui règlent l'acheminement de la transition vers le composant de FAQ lorsque l'énoncé est reconnu comme une question, et non comme une demande transactionnelle. La rubrique Propriétés de FAQ pour le composant System.Intent décrit ces propriétés, tandis que la rubrique Création d'une compétence avec des flux d'intention et de FAQ décrit le processus global de création d'une compétence avec des fonctions d'intention et de FAQ.

  • QnA —Ajoute un modèle configuré au minimum pour un composant System.Intent.

  • QnA Advanced —Semblable au modèle FAQ, mais fournit des propriétés facultatives pour un contrôle plus précis :
    • Configuration keepTurn pour abandonner ou conserver le contrôle du flux de dialogue de la compétence .

    • Modularité (appel d'une compétence avec FAQ dédiée). Voir Compétences avec FAQ réutilisables.

    • Dimensionnement et pagination de FAQ.

Pour ajouter ces modèles :
  1. Cliquez sur Flows (Flux) dans la barre de navigation gauche.

  2. Cliquez sur Add Components (Ajouter des composants) dans le coin supérieur gauche de la page. (Vous aurez peut-être à faire défiler la page vers le haut si ce bouton n'est pas visible).

  3. Choisissez la palette des composants Langue.

  4. Choisissez un des trois modèles de FAQ, puis utilisez le menu Insert After (Insérer après) pour le positionner dans la définition du flux de dialogue. Cliquez sur Apply (Appliquer).
    Note

    Pour mettre en oeuvre la prise en charge des FAQ, vous devez ajouter un nouveau composant System.Intent (à l'aide du modèle Intent and QnA) à la définition de flux de dialogue ou modifier un composant System.Intent existant pour activer les transitions vers le composant de FAQ.

Création d'une compétence avec des flux d'intention et de FAQ

  1. Ajoutez le modèle Intent with QnA au flux de dialogue (accessible depuis l'option Language (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 QnA :
          transitions:
            actions:
              Balances: "startBalances"
              Transactions: "startTxns"
              Send Money: "startPayments"
              Track Spending: "startTrackSpending"
              Dispute: "setDate"
              unresolvedIntent: "unresolved"
              qna: "qna"
      
      Si le niveau de résolution de l'intention est inférieur au seuil de confiance, la compétence déclenche l'action qna qui fait passer le moteur de dialogue à l'état qna. Dans ce cas, le message relatif à la compétence comprend uniquement le lien View Answers (Voir 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"
      
      Mais lorsque le moteur d'intention peut à la fois résoudre le message avec une note au-dessus du seuil de confiance et lui faire correspondre une FAQ, le message de la compétence comprend des liens pour l'intention et la réponse de FAQ.En revanche, lorsque le moteur d'intention classe le message comme une demande et non comme une question, la compétence ignore les FAQ et passe au flux d'intention. Dans ce cas, le message comprend uniquement l'option d'intention.

      Vous pouvez modifier ce comportement en ajoutant des mots et des expressions qui clarifient l'acheminemententre intentions et FAQ et en réglant la propriété qnaSkipIfIntentFound de System.Intent.

Exemples de dialogues avec FAQ
Acheminement FAQ pour le composant System.Intent
L'extrait de code suivant montre comment le routeur est activé par la propriété qnaEnable du composant System.Intent. Il présente également la transition vers l'état avec module de FAQ, et l'état de FAQ 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 d'une ou de plusieurs langues étrangères pour les FAQ
Utilisez cette configuration pour les compétences qui prennent en charge une ou plusieurs langues étrangères.
  1. Créez un fichier de source de données propre à la langue cible.
    Note

    Nous ne prenons pas en charge les sources de données pour le chinois.
  2. Au besoin, ajoutez des synonymes ou mettez à jour les mots ignorés.

  3. Configurez un service de traduction. Voir Ajouter un service de traduction à votre compétence.

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

  5. Configurez le flux de dialogue pour la prise en charge multilingue. 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"    
Compétences avec FAQ réutilisables

Vous pouvez modulariser vos définitions de flux de dialogue en créant des compétences avec FAQ réutilisables qui peuvent être appelées à l'aide des propriétés botName et QnaBotName appartenant 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 cet extrait, 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

Cet extrait présente la propriété botName dans deux contextes différents : dans le composant System.Intent, où elle appelle une compétence transactionnelle, et dans le composant System.Qna, où elle appelle une compétence avec FAQ.
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"

Configurer l'acheminement entre intentions et FAQ

Nous fournissons des mots fréquemment utilisés et des expressions de début qui indiquent des commandes ou des questions dans la page de configuration de l'acheminement FAQ. Vous pouvez ajouter à cette page un contenu propre au domaine qui permet au routeur de distinguer les intentions des FAQ. Pour ce faire :

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

  2. Cliquez sur Q&A Routing Config (Configuration de l'acheminement FAQ).

  3. Sélectionnez une langue.

  4. Ajoutez ou supprimez des mots et des expressions dans les catégories suivantes qui ont une incidence sur l'acheminement vers une intention.
    • Transaction Config (Configuration de transaction)—Vous pouvez ajouter des verbes et des expressions qui aident le moteur d'intention à identifier un message en tant que transaction.
      • Additional Request Verbs (Verbes de demande supplémentaires)—Les messages commençant par des demandes ou des commandes comme buy, check ou cancel sont considérés comme transactionnels et sont acheminés vers le traitement d'intention. Ces mots, qui correspondent à des demandes impératives, indiquent une transaction, et non une question.

        Nous tenons à jour une bibliothèque de verbes impératifs pour chaque langue prise en charge. Parmi eux, on trouve des mots tels que payer, supprimer et terminer. Vous pouvez ajouter des verbes de demande spécifiques à la société ou au public concerné.

      • Request Verb Expansion (Extension des verbes de demande)—Jeu de préfixes (un, dis, re) qui, lorsqu'ils sont appliqués aux verbes de demande que vous avez ajoutés dans le champ Additional Request Verbs (Verbes de demande supplémentaires), définissent de nouveaux verbes permettant d'identifier un message comme une intention.

      • Request Sentence Prefix (Préfixe de phrase de demande)—Mots et expressions associés à des demandes, par exemple Can you (Pouvez-vous) et Do not (Ne pas). Les messages commençant par ces mots sont traités comme des intentions. Nous fournissons une bibliothèque de ces mots et expressions relatifs aux transactions que vous pouvez mettre à jour.
    • Question Config (Configuration des questions)—Ensemble de mots et d'expressions généralement utilisés dans les questions. Il s'agit d'expressions telles que How do I (Comment) et I need to know (J'aimerais savoir). Ils indiquent qu'un utilisateur est en train de poser une question et non de demander une transaction. Lorsqu'une compétence reçoit un message qui commence par l'une de ces expressions, elle optimise sa réponse en donnant priorité au lien pour la réponse de FAQ par rapport à celui de la réponse d'intention. Habituellement, le comportement est inversé : la compétence donne la première place aux intentions dont la note est supérieure au seuil de confiance configuré. Par exemple, lorsqu'une compétence reçoit le message How do I terminate my policy (Comment résilier ma police), elle détecte facilement que l'utilisateur recherche des informations et place le lien View Answers (Voir les réponses) en premier.

      Si l'entrée de l'utilisateur est ambiguë, le lien de FAQ risque de ne pas figurer en premier. Par exemple, le routeur n'est peut-être pas en mesure d'identifier can I terminate my policy (puis-je résilier ma police) comme intention ou FAQ. La compétence présente les deux options en raison d'une intention qui a obtenu une note au-dessus du seuil de confiance et d'une question correspondante, mais elle classe l'intention en premier.
      Description de prioritized-intent-response.png :
      Description de l'illustration prioritized-intent-response.png