Langue

Il s'agit des composants disponibles dans la catégorie Langue de l'éditeur de flux de dialogue basé sur YAML.

System.Intent

Ce composant détecte l'intention de l'utilisateur et extrait toutes les entités, puis déclenche un état ultérieur.
Remarque

Ce composant n'est pas disponible pour les briques développées avec le concepteur visuel de flux. A la place, les intentions sont résolues automatiquement en l'absence de flux actif. Reportez-vous à Détection et résolution d'intention.
Propriété Description Requis ?
variable Contient la valeur que la structure de traitement du langage résout à partir de la saisie utilisateur. Par exemple, nos exemples de bot de brique définissent cette propriété comme variable=iResult (avec iResult: "nlpResult" défini en tant que l'une des variables context). Vous n'avez pas besoin de nommer la variable iResult. Ce nom est une convention utilisée dans notre exemple de code et dans nos exemples de brique. Quel que soit le nom de variable employé pour nlpResult, veillez à l'utiliser de manière cohérente dans le flux de dialogue. Oui
optionsPrompt Titre de la liste des intentions lorsque vous définissez une valeur pour l'option Marge de gain. Par défaut, la valeur de cette chaîne est Do you want to.

La valeur par défaut de cette propriété est stockée dans le groupe de ressources de la brique. Pour la modifier, cliquez sur Icône Groupes de ressources, sélectionnez l'onglet Configuration et mettez à jour la clé Intention - optionsPrompt. Si vous utilisez le groupe de ressources de la brique pour modifier le message par défaut, vous n'avez pas besoin d'inclure la propriété dans le composant, sauf si vous voulez remplacer le message par défaut.

Non
botName Nom (pas le nom d'affichage) de la brique qui résout l'intention. Utilisez cette propriété si vous décidez de résoudre la saisie utilisateur à l'aide du modèle d'une brique distincte plutôt que de la brique en cours. Le recours à cette approche peut être bénéfique si vous souhaitez résoudre l'intention en fonction d'un modèle avec un domaine défini plus étroitement que le domaine requis par votre cas d'emploi principal. Non
botVersion Indique la version de la brique. La valeur par défaut est 1.0 (si vous n'indiquez pas le numéro de version). Non
sourceVariable La structure de traitement du langage résout l'intention en utilisant sourceVariable comme entrée.

Important : vous ne pouvez pas utiliser cette propriété en combinaison avec la propriété translate. Si vous devez traduire l'entrée représentée par sourceVariable, vous pouvez utiliser System.TranslateInput pour ce faire.

Non
daIntercept Pour les appels à System.Intent, détermine si l'assistant numérique peut intercepter et réacheminer la saisie utilisateur vers d'autres briques. Les valeurs possibles sont les suivantes :
  • always (valeur par défaut) : permet à l'assistant numérique d'intercepter la saisie, même si le flux en cours n'est pas terminé. Cela permet à l'assistant numérique de gérer les interruptions qui suggèrent un changement vers un autre flux.
  • never : empêche l'assistant numérique d'intercepter la saisie utilisateur. Afin d'obtenir plus d'informations sur le cas d'emploi associé à la définition de cette valeur, reportez-vous à Application d'appels à un composant System.Intent de brique.
Cette propriété est ignorée si la brique n'appartient pas à un assistant numérique.
Non
translate Remplace la valeur définie ici pour la variable de contexte autoTranslate. Si autoTranslate n'est pas définie ou si elle est définie sur false, vous pouvez définir cette propriété sur true afin d'activer la traduction automatique pour ce composant uniquement. Si la variable de contexte autotranslate est définie sur true, vous pouvez définir cette propriété sur false pour exclure ce composant de la traduction automatique.

Important : vous ne pouvez pas utiliser cette propriété en combinaison avec la propriété sourceVariable. Si vous devez traduire l'entrée représentée par sourceVariable, vous pouvez utiliser System.TranslateInput pour ce faire.

Non

Propriétés de questions/réponses pour le composant System.Intent

Il s'agit de propriétés facultatives pour l'acheminement de questions/réponses.
Propriété Description Type de données Valeur par défaut
qnaEnable Active l'acheminement vers le module de questions/réponses. Si vous définissez cet élément sur true (acheminement activé), vous devez également définir l'action de transition de questions/réponses (none ou exit). Reportez-vous à Transitions de questions/réponses. boolean false
qnaBotName Nom (pas le nom d'affichage) de la brique avec le module de questions/réponses. Si vous ne définissez pas cette propriété, la valeur définie pour la propriété botName du composant System.QnA est utilisée à la place. chaîne N/A
qnaBotVersion Version de la brique avec le module de questions/réponses. Par défaut, elle est de 1.0. Cette valeur est facultative int N/A
qnaTimeout Durée, en millisecondes, pendant laquelle la brique attend que le serveur de questions/réponses réponde à la saisie utilisateur. long 5000
qnaUseResult La définition de cette option sur true (valeur par défaut) permet à la brique d'interroger le serveur de questions/réponses à l'aide de la saisie utilisateur. La brique utilise ensuite les résultats de cette requête (les correspondances) pour définir l'acheminement. Lorsque vous définissez cette propriété sur true, la brique affiche le lien Afficher les réponses uniquement en cas de correspondances. Si vous définissez cette propriété sur false, le lien Afficher les réponses s'affiche en permanence. boolean true
qnaSkipIfIntentFound Si cette propriété est définie sur true, la brique contourne les questions/réponses lorsqu'il existe une correspondance d'intention. La valeur par défaut (false) permet à l'utilisateur d'interroger le serveur de questions/réponses à l'aide d'une variation utilisateur, ainsi que de présenter les questions/réponses en tant qu'option. boolean false
optionsPrompt

Les questions/réponses sont affichées si elles sont activées pour le composant System.Intent et si une correspondance est trouvée.

Conseil : pour les langues étrangères (autres que l'anglais), référencez un groupe de ressources. Reportez-vous à Référencement des groupes de ressources dans le flux de dialogue.

chaîne Do you want to
optionsQnaLabel

Libellé d'action dans les options (optionsPrompt) qui redirige l'utilisateur vers le composant System.QnA pour afficher les correspondances.

Conseil : pour les langues étrangères (autres que l'anglais), référencez un groupe de ressources. Reportez-vous à Référencement des groupes de ressources dans le flux de dialogue.

chaîne Questions
qnaMatchFields Définit les champs de questions/réponses utilisés pour la mise en correspondance avec le message utilisateur. Valeurs valides :
  • all
  • categories
  • questions
  • answers
  • categories+questions
Vous pouvez entrer ces valeurs sous forme de liste en les séparant par une virgule.
chaîne all
qnaMinimumMatch

Définit les pourcentages minimal et maximal des jetons que chaque paire de questions/réponses doit contenir pour être considérée comme une correspondance.

Pour obtenir les meilleures correspondances, nous créons un jeton à partir des variations que le moteur d'intentions résout en questions. Ces jetons sont formés à partir de radicaux de mot et de diverses combinaisons de mots. Par conséquent, un grand ensemble de jetons peut être généré à partir d'une variation. C'est pourquoi il est peu probable qu'une paire de questions/réponses contienne l'ensemble des mots et des variantes clés. Par conséquent, il n'est pas recommandé de modifier la valeur par défaut de ce paramètre, 50%,25%.

Le fait de disposer de 50 % des jetons générés (niveau maximal par défaut) signifie que la paire de questions/réponses peut être considérée comme une correspondance pertinente si elle contient tous les mots-clés de la variation. Si ce niveau maximal n'est pas atteint, un niveau minimal de 25 % suffit. Si vous modifiez ces paramètres, particulièrement au moyen d'une augmentation du maximum à plus de 50 %, la paire de questions/réponses ne devra pas seulement contenir tous les mots-clés, mais également correspondre à des jetons supplémentaires.

Ainsi, si vous souhaitez réduire les risques de manquer une correspondance pertinente et si vous tolérez le renvoi de correspondances non pertinentes dans le processus, vous pouvez également ajouter un seuil encore inférieur. Par exemple : 50%,25%,10%.

Si vous voulez réduire les correspondances non pertinentes, vous pouvez augmenter les niveaux (par exemple, 60%,50%). N'oubliez pas que cela pourrait exclure les paires de questions/réponses qui contiennent tous les mots-clés.

Important : si vous ne souhaitez pas utiliser les niveaux par défaut, vous devez définir la propriété minimumMatch et l'option Seuils de correspondance du testeur en batch de questions/réponses sur les mêmes valeurs. Reportez-vous à Test en batch du module de questions/réponses.

chaîne 50%,25%
qnaUseSourceVariable Lorsque cette propriété est définie sur true, la correspondance de questions/réponses est basée sur la valeur stockée dans la propriété de System.Qna nommée sourceVariable du système, et non dans la saisie utilisateur. boolean false

System.MatchEntity

Remarque

Cette rubrique traite de l'utilisation de ce composant en mode YAML. Pour plus d'informations sur son utilisation dans le concepteur de flux visuel, reportez-vous à Entité de correspondance.

System.MatchEntity appelle le moteur d'intentions pour extraire les informations d'entité à partir du texte contenu dans la propriété sourceVariable. S'il existe une correspondance pour le type d'entité de la variable, la variable est définie avec cette valeur d'entité.

Propriété Description Requis ?
sourceVariable Variable qui contient la valeur d'entrée. Oui
variable Nom de la variable de contexte. Il est possible d'utiliser la valeur de cette variable dans un composant System.SetVariable suivant afin d'extraire une entité spécifique à l'aide d'une expression FreeMarker. Par exemple, pour extraire une valeur d'entité EMAIL : ${userInputEntities.value.entityMatches['EMAIL'][0]} Oui

Ce composant contient également deux transitions prédéfinies : match et nomatch.

Transition Description
match Indique au moteur de dialogue de passer à un état lorsque les entités correspondent.
nomatch Indique au moteur de dialogue de passer à un état lorsque les entités ne correspondent pas.
Dans le fragment de code suivant, le composant System.MatchEntity correspond à la valeur fournie par l'utilisateur, stockée dans la variable mailInput par rapport au type d'entité EMAIL défini pour la variable mailEntity. Si la saisie utilisateur répond au type d'entité en étant une adresse électronique, le composant System.MatchEntity écrit cette valeur dans la variable mailEntity renvoyée à l'utilisateur du bot ("You entered ${mailEntity.value.email}"). Si les valeurs ne correspondent pas, le moteur de dialogue passe à l'état nomatch.
Remarque

Le composant System.MatchEntity résout une valeur unique.
context:
  variables:
    iResult: "nlpresult"
    mailInput: "string"
    mailEntity: "EMAIL"
states:
  intent:
    component: "System.Intent"
    properties:
      variable: "iResult"
    transitions:
      actions:
        displayMailAdresses: "askMail"
        unresolvedIntent: "dunno"
  askMail:
    component: "System.Text"
    properties:
      prompt: "Please provide a valid email address"
      variable: "mailInput"
    transitions:
      next: "matchEntity"
  matchEntity:
    component: "System.MatchEntity"
    properties:
      sourceVariable: "mailInput"
      variable: "mailEntity"
    transitions:
      actions:
        match: "print"
        nomatch: "nomatch"
  print:
    component: "System.Output"
    properties:
      text: "You entered ${mailEntity.value.email}"
    transitions:
      return: "done"
  nomatch:
    component: "System.Output"
    properties:
      text: "All I wanted was a valid email address."
    transitions:
      return: "done"
  dunno:
    component: "System.Output"
    properties:
      text: "I don't know what you want"
    transitions:
      return: "done"

System.DetectLanguage

Remarque

Cette rubrique traite de l'utilisation de ce composant en mode YAML. Pour plus d'informations sur son utilisation dans le concepteur de flux visuel, reportez-vous à Détecter le langage.
Ce composant utilise le service de traduction pour détecter la langue de l'utilisateur à partir de la saisie utilisateur ou du contenu enregistré dans une variable de contexte référencée par une propriété source :
context:
  variables:
    autoTranslate: "boolean"
    translated: "string"
    someTranslatedText: "string"
states:
  setAutoTranslate:
    component: "System.SetVariable"
    properties:
      variable: "autoTranslate"
      value: true
    transitions:
      next: "detect"
   detect:
    component: "System.DetectLanguage"
    properties:
      source: "someTranslatedText"  
      useExistingProfileLanguageTag: true
    transitions:
      ...
Le composant System.DetectLanguage définit une variable appelée profile.languageTag avec la chaîne d'environnement local. Vous pouvez définir des variables avec la langue actuelle lorsque vous utilisez cette variable dans une expression de valeur (${profile.languageTag}).
Remarque

La variable profile.languageTag est prioritaire par rapport à la variable profile.locale définie par le client de messagerie.

La propriété useExistingProfileLanguageTag est utilisée lorsqu'une brique fait partie d'un assistant numérique disposant d'un service de traduction. La brique peut ainsi utiliser immédiatement la langue détectée par l'assistant numérique. Sinon, la brique peut indiquer un message ou une invite en anglais avant que la langue ne soit (re)détectée. Si la brique ne figure pas dans un assistant numérique compatible avec la traduction, la propriété est ignorée.

Variables profile.locale et profile.languageTag

L'utilisation d'un groupe de ressources particulier et des traductions pour les interfaces utilisateur permet de libeller les messages du composant eux-mêmes en fonction de la langue de l'utilisateur stockée dans les variables profile.locale et profile.languageTag.

La façon dont ces variables sont définies dépend du mode de langue de la brique :

  • Pour les briques qui utilisent la prise en charge des langues natives, la langue est détectée automatiquement et ces variables sont renseignées avec la valeur appropriée, sauf si des valeurs ont déjà été affectées aux variables.
  • Pour les briques qui utilisent un service de traduction :
    • La valeur de la variable profile.locale est dérivée du client de messagerie de l'utilisateur.
      Remarque

      profile.locale prend en charge les valeurs au format ISO langue-pays ou ISO language_country.
    • La valeur de la variable profile.languageTag est fournie par le composant System.DetectLanguage.
Remarque

La valeur définie pour la variable profile.locale peut déterminer les formats propres à l'environnement local pour les entités DATE, CURRENCY et NUMBER, même lorsqu'une valeur a été définie pour la variable profile.languageTag.
Vous pouvez définir la valeur de ces deux variables (et permettre à ces deux variables de définir des valeurs pour l'autre variable) à l'aide de System.SetVariable. Par exemple :
  • setLocaleToGerman:
      component: "System.SetVariable"
      properties:
        variable: "profile.locale"
        value: "de"
  • setLanguageTagToGerman:
      component: "System.SetVariable"
      properties:
        variable: "profile.languageTag"
        value: "de"
  • setLanguageToVariableValue:
      component: "System.SetVariable"
      properties:
        variable: "profile.languageTag"
        value: "${language_preference_var.value}"
  • setLocaleToLanguageTag:
      component: "System.SetVariable"
      properties:
        variable: "profile.locale"
        value: "${profile.languageTag}"
  • setTagToLocale:
      component: "System.SetVariable"
      properties:
        variable: "profile.languageTag"
        value: "${profile.locale}"

Conseil :

Vous pouvez implémenter une liste de langues de votre choix en comparant la valeur d'environnement local stockée dans ces variables ou dans une table de base de données utilisateur personnalisée à la liste des langues prises en charge. Si la langue détectée ne figure pas dans cette liste, vous pouvez inviter l'utilisateur à en choisir une, puis définir profile.languageTag avec cette valeur.

System.TranslateInput

Remarque

Cette rubrique traite de l'utilisation de ce composant en mode YAML. Pour plus d'informations sur son utilisation dans le concepteur de flux visuel, reportez-vous à Traduire l'entrée.

Ce composant envoie le texte spécifié au service de traduction de la brique, puis stocke la traduction en anglais. Il repose sur la brique configurée avec un service de traduction, qui reconnaît la langue à partir de l'entrée de l'utilisateur et la traduit en anglais. Ce composant ne fonctionne pas avec les briques qui utilisent le mode de langue pris en charge de façon native.

Utilisez ce composant lorsque vous devez traiter le texte d'entrée brut avant de le faire traduire. Par exemple, vous pouvez supprimer certaines données personnelles de la saisie utilisateur avant de l'envoyer au service de traduction.

Propriété Description Requis ?
source Indique les valeurs de texte à traduire en anglais. Non
variable Variable contenant la traduction anglaise du texte. Oui

Etant donné que le composant System.TranslateInput utilise le service de traduction qui détecte déjà la langue de l'utilisateur, ce composant n'a pas besoin de suivre les états qui détectent ou définissent la langue comme décrit dans Ajout d'un service de traduction à la brique. Par conséquent, vous pouvez stocker la traduction anglaise à partir de la saisie utilisateur directe ou à partir d'une variable source.

Traduction d'entrée directe

Le composant System.TranslateInput stocke la traduction en anglais de la saisie utilisateur directe dans sa propriété variable. Le fragment de code suivant montre comment la saisie utilisateur, par exemple "Hallo, ich bin ein Mensch" dans la variable translatedString est stockée sous la forme "Hello, I am a a an a human".
context:
  variables:
     translatedString: “string”
     sourceString: “string”
...

states:
...

  translateInput:
    component: "System.TranslateInput"
      properties:
        variable: "translatedString"

Variable source

Dans le fragment de code suivant, la variable sourceString contient la saisie utilisateur. (Par exemple, cette entrée a peut-être été collectée par un composant Réponse commune.) Une fois que System.TranslateInput a terminé son traitement, la traduction en anglais est stockée dans la variable translatedString.
context:
  variables:
    autoTranslate: "boolean" 
    translatedString: "string"
    sourceString: "string"    

   ...

states:
   ...

  translateInputString:
    component: "System.TranslateInput"
    properties:
      source: "sourceString"
      variable: "translatedString"
    transitions: 
      ...
Remarque

Le composant System.TranslateInput ne peut pas traduire les objets de données ou les tableaux qui sont stockés dans une variable de contexte par un composant personnalisé. Ce contenu peut être traduit uniquement lorsque la variable est référencée par un composant qui utilise la traduction automatique. Par exemple, le composant System.TranslateInput ne peut pas traduire un objet de données tel que {”product”: “scissors”, “color”: “silver”} en ciseaux etargent.

Propriété sourceVariable

Comme la propriété sourceVariable de System.Intent contient la valeur traitée par le composant, vous pouvez l'utiliser avec le composant System.TranslateInput pour insérer du texte traduit. Le fragment de code suivant montre l'affectation de la valeur de variable translated afin qu'elle puisse être traitée par le moteur de traitement du langage naturel.

  translate:
    component: "System.TranslateInput"
    properties:
      variable: "translated"
    transitions: 
      next: "intent"
  intent:
    component: "System.Intent"
    properties:
      variable: "iResult"
      sourceVariable: "translated"
...

System.TranslateOutput

Remarque

Cette rubrique traite de l'utilisation de ce composant en mode YAML. Pour plus d'informations sur son utilisation dans le concepteur visuel de flux, reportez-vous à Traduire la sortie.
Le composant System.TranslateOutput vous permet de traduire du texte dans la langue de l'utilisateur. Le composant prend la valeur définie pour la propriété source. Il traduit le texte dans la langue détectée par le composant System.DetectLanguage ou par la variable profile.locale, puis le stocke dans la propriété variable.
Propriétés Description Requis ?
source Texte à traduire ou expression FreeMarker faisant référence à une variable dont la valeur doit être traduite. Oui
variable Contient le texte traduit. Oui
Dans cet exemple, le composant System.Output, qui affiche autrement le texte traduit automatiquement, continue de générer le texte traduit, mais génère ici la traduction du texte défini pour la propriété source.
  unresolvedTranslate:
    component: "System.TranslateOutput"
    properties:
      source: "Sorry I don't understand"
      variable: "someTranslatedText"
    transitions:
      next: "unresolved"
  unresolved:
    component: "System.Output"
    properties:
      text: "${someTranslatedText}"
    transitions:
      return: "unresolved"

System.Qna

Ces propriétés sont facultatives pour le composant System.Qna.
Nom Description Requis ? Valeur par défaut
botName Nom (pas le nom d'affichage) de la brique avec le module de questions/réponses. Non N/A
botVersion Version de la brique identifiée par la propriété botName. Vous pouvez définir la propriété botName sans également définir la propriété botVersion. Toutefois, vous ne pouvez pas définir botVersion sans également définir botName : botVersion est ignoré lorsque vous ne définissez pas également la propriété botName. Par conséquent, sa version par défaut (1.0) ne s'applique que si vous définissez également la propriété botName. Pour acheminer vers une autre version de la brique, vous devez définir la propriété botName et définir la propriété botVersion avec la version cible. Non 1
highlighter Méthode utilisée pour mettre en évidence le texte le plus pertinent dans chaque réponse. Les valeurs valides sont les suivantes :
  • system : le système tente de déterminer le texte le plus pertinent dans la réponse et met ces mots en évidence.
  • firstNChars : les premiers caractères de la réponse sont mis en évidence. Le nombre de caractères est déterminé par la valeur de la propriété highlightLength et des caractères restants dans le mot final mis en évidence.
Non system
highlightLength Nombre de caractères à mettre en évidence dans chaque réponse. Non 100
sourceVariable La structure de traitement du langage résout la correspondance de questions/réponses à l'aide de la valeur stockée par sourceVariable, et non à l'aide de la saisie utilisateur. Pour activer cette mise en correspondance, définissez qnaUseSourceVariable: true pour le composant System.Intent. Par exemple :
metadata:
  platformVersion: "1.0"
main: true
name: "FinancialBotMainFlow"
context:
  variables:
    iResult: "nlpresult"
    iResult2: "nlpresult"
    transaction: "string"
    faqstring1: "string"
    faqstring2: "string"
states:

  ...  
  
  setVariable:
    component: "System.SetVariable"
    properties:
      variable: "faqstring1"
      value: "Tell me about family floater plan"

...

  intent2:
    component: "System.Intent"
    properties:
      variable: "iResult"
      sourceVariable: "faqstring1"
      qnaEnable: true
      qnaUseSourceVariable: true
    transitions:
      actions:
        Send Money: "sendMoney"
        Balances: "balances"
        unresolvedIntent: "unresolved"
        qna: "qna"

  sendMoney:
    component: "System.Output"
    properties:
      text: "send money"
    transitions:
      return: "sendMoney"

  balances:
    component: "System.Output"
    properties:
      text: "Balances"
    transitions:
      return: "balances"

  unresolved:
    component: "System.Output"
    properties:
      text: "Sorry I don't understand that question!"
    transitions:
      return: "unresolved"
  qna:
    component: "System.QnA"
    properties:
	    sourceVariable: "faqString1"
    transitions:
      actions:
        none: "unresolved"
      next: "intent2"
Non N/A
transitionOnTextReceived
Transitions à partir de l'état défini avec le composant System.QnA lorsque l'utilisateur entre du texte libre.
  • true : (valeur par défaut) effectue une transition à partir de l'état System.Qna lorsque la brique reçoit du texte libre. Votre brique peut tenter de résoudre ce texte lorsque vous configurez une transition vers un état System.Intent configuré avec des propriétés dequestions/réponses.

  • false : le moteur de dialogue reste dans l'état de questions/réponses, où le texte libre est traité en tant que requête de questions/réponses. Le composant affiche également une option de sortie. Par défaut, ce bouton apparaît sous la forme Quitter les questions, mais vous pouvez le modifier à l'aide de la propriété exitLabel.

    Dans la mesure où cette action ajoute l'option de sortie, vous devez configurer la transition exit.

Non true
keepTurn

La propriété keepTurn se comporte différemment en fonction de la manière dont l'utilisateur effectue une transition à partir de l'état défini avec le composant System.QnA. Vous pouvez configurer la manière dont keepTurn achemine l'utilisateur via le flux à l'aide d'une valeur booléenne (true, false) ou d'une correspondance de paires clé-valeur.

Non false (lorsque configuré en tant que valeur booléenne)
matchListLimit Limite la pagination des réponses Non 5
categoryListLimit Limite la pagination des catégories Non 5
resultLayout Disposition des réponses correspondantes. Valeurs valides : horizontal et vertical. Non horizontal
minimumMatch

Définit les pourcentages minimal et maximal des jetons que chaque paire de questions/réponses doit contenir pour être considérée comme une correspondance.

Pour obtenir les meilleures correspondances, nous créons un jeton à partir des variations que le moteur d'intentions résout en questions. Ces jetons sont formés à partir de radicaux de mot et de diverses combinaisons de mots. Selon la longueur du message utilisateur, le processus peut générer un grand ensemble de jetons. Comme il est peu probable qu'une paire de questions/réponses puisse correspondre à tous les éléments, nous vous recommandons de définir le niveau de correspondance sur 50%, 25%.

Dans ce paramètre, la paire de questions/réponses peut être considérée comme pertinente si elle correspond à 50 % des jetons. Si ce niveau maximal n'est pas atteint, un niveau minimal de 25 % suffit.

Si vous souhaitez réduire les risques d'absence de correspondance pertinente et si vous tolérez le renvoi de correspondances non pertinentes dans le processus, vous pouvez également ajouter un seuil encore inférieur. Par exemple : 50%,25%,10%.

Si vous voulez réduire les correspondances non pertinentes, vous pouvez augmenter le pourcentage (par exemple, minimumMatch: "80%"), mais cela peut entraîner des correspondances inattendues pour les messages comprenant entre trois et sept mots. Cela signifie que vous pouvez régler la précision des questions/réponses renvoyées pour les requêtes utilisateur courtes et longues.

Important : si vous ne souhaitez pas utiliser les niveaux par défaut lors des tests, vous devez définir la propriété QnaMinimumMatch et l'option Seuils de correspondance du testeur en batch de questions/réponses sur les mêmes valeurs que pour la propriété minimumMatch. Reportez-vous à Test en batch du module de questions/réponses

Non 50%25%
matchfields Définit les champs de questions/réponses utilisés pour la mise en correspondance avec le message utilisateur. Valeurs valides :
  • all
  • categories
  • questions
  • answers
  • categories+questions
Vous pouvez entrer ces valeurs sous forme de liste en les séparant par une virgule.
Non all
enableCategoryDrilldown Définissez cette option sur true pour afficher une analyse descendante par catégorie. Non true
exitLabel Texte du libellé permettant de quitter le module de questions/réponses. Non Exit Questions
viewAnswerLabel Texte du libellé de l'action d'affichage d'un détail de réponse. Non View
moreAnswersLabel Texte du libellé pour l'action d'affichage de plus de réponses. Non More Answers
answersLabel Texte du libellé pour les actions d'affichage des réponses d'une catégorie spécifique. Non Answers
categoriesLabel Texte du libellé pour les catégories qui correspondent à la variation. Non Categories
subCategoriesLabel Texte du libellé pour l'action d'affichage des sous-catégories. Non Sub-Categories
moreCategoriesLabel Texte du libellé de l'action d'affichage de plus de catégories. Non More Categories

Augmentation de la précision des questions/réponses renvoyées à l'aide de minimumMatch

Même si le paramètre par défaut de 50%,25% renvoie des paires de questions/réponses correctes, vous pouvez également augmenter le pourcentage pour que votre brique renvoie moins de résultats, mais qu'ils soient plus précis. Par exemple, vous voulez que votre brique renvoie uniquement une paire de questions/réponses lorsqu'elle correspond à un pourcentage élevé des jetons, ou qu'elle achemine l'utilisateur vers un agent physique.

Dans un tel scénario, l'augmentation du pourcentage pour la propriété minimumMatch jusqu'à 80 % peut renvoyer des correspondances de questions/réponses plus précises, en particulier pour les messages plus longs. La même règle peut ne pas s'appliquer aux messages plus courts, qui sont généralement constitués de trois à sept mots, dont environ 50 % sont des mots ignorés (mots vides). Par exemple, pour la question utilisateur What is account security?, le système détecte deux jetons, "account" et "security". Lorsque minimumMatch est défini sur 80 %, seul l'un de ces jetons est renvoyé (80 % de 2 est égal à 1,6, arrondi à 1) alors que, dans l'idéal, les deux jetons devraient être renvoyés. Dans ce cas, la brique peut renvoyer des paires de questions/réponses qui décrivent généralement les comptes, ce qui constitue une réponse trop large. La brique devrait uniquement renvoyer la question/réponse sur la sécurité de compte ou ne rien renvoyer du tout.

Pour configurer la propriété minimumMatch afin qu'elle renvoie des questions/réponses précises pour les messages courts, entrez le nombre de jetons à mettre en correspondance, un opérateur inférieur à (<) et le niveau de correspondance requis lorsque le message contient un nombre plus élevé de jetons. Par exemple :
  qna:
    component: "System.QnA"
    properties:
      minimumMatch: "3<80%"
    transitions:
      actions:
        none: "unresolved"
      next: "intent"
Dans ce fragment de code, si le message contient 1 à 3 jetons, la paire de questions/réponses doit correspondre à tous les jetons pour que la brique la renvoie à l'utilisateur. Dans ce scénario, ce paramètre renvoie uniquement une paire de questions/réponses correspondant à la sécurité de compte. Lorsque le message comporte quatre jetons ou plus, la paire de questions/réponses ne doit correspondre qu'à 80 % d'entre eux.
Vous pouvez régler la correspondance minimale pour les messages plus longs contenant des détails ajoutés en modulant le nombre de jetons correspondants requis (et en diminuant simultanément le pourcentage). Par exemple, le paramètre suivant illustre la manière de prendre en compte les messages qui peuvent potentiellement contenir plus de neuf jetons :
  qna:
    component: "System.QnA"
    properties:
      minimumMatch: "3<80% 8<70% 12<65%"  
    transitions:
      actions:
        none: "unresolved"
      next: "intent"
Selon le paramètre minimumMatch dans ce fragment de code, la brique renvoie des questions/réponses uniquement lorsque les jetons suivants sont mis en correspondance.
Nombre de jetons dans le message Nombre de jetons devant correspondre
1 1
2 2
3 3
4 (80% correspondance) 3 (3,2 arrondi à 3)
5 (80% correspondance) 4
6 (80% correspondance) 4 (4,8 arrondi à 4
7 (80% correspondance) 5 (5,6 arrondi à 5)
8 (80% correspondance) 6 (6,4 arrondi à 6)
9 (correspondance à 70%) 6 (6,3 arrondi à 5)
10 (70% correspondance) 7
11 (70% correspondance) 7 (7,7 arrondi à 7)
12 (70% correspondance) 8 (8,4 arrondi à 8)
13 (65% correspondance) 8 (8,45 arrondi à 8)

Mise en correspondance clé-valeur et actions de transition pour la propriété keepTurn

Vous pouvez définir la propriété keepTurn en tant que correspondance dont les clés décrivent les transitions.
Clé Description Valeur par défaut
next Lorsqu'elle est définie sur false, la brique perd le contrôle lorsque la boîte de dialogue passe à l'état suivant. La brique ne traitera pas les saisies utilisateur tant que le moteur de dialogue ne passera pas à l'état suivant. false
none Lorsqu'elle est définie sur true, la brique conserve le contrôle lorsqu'une action de transition none est déclenchée, car aucune question ne peut être renvoyée pour la saisie utilisateur. true
exit Lorsque cette propriété est définie sur true, la brique conserve le contrôle lorsqu'une action de transition exit a été déclenchée. true
textReceived Lorsque cette propriété est définie sur true, la brique conserve le contrôle de la conversation lorsque transitionOnTextReceived est défini sur true, ce qui signale au moteur de dialogue de changer d'état. true

Transitions de questions et réponses

Nom Description Requis ?
none Aucune correspondance n'a été trouvée pour la saisie utilisateur (ce qui signifie généralement que le flux est acheminé vers un état qui informe l'utilisateur qu'aucune correspondance n'a été trouvée). Oui
exit L'utilisateur quitte le module de questions/réponses. Par défaut, keepTurn est défini sur true pour cette action. Non