C. Marqueurs de conversation pour les analyses

Pour les briques avec des flux de dialogue basés sur YAML, vous pouvez faciliter la lecture des rapports d'analyse en ajoutant les propriétés de marqueur de conversation suivantes au flux de dialogue :
  • insightsInclude: false : exclut les états des parcours de dialogue affichés dans les rapports d'analyse pour les intentions et les conversations. L'ajout de cette propriété à un état empêche son affichage ou son décompte dans les rapports d'analyse. Vous pouvez donc l'appliquer aux états qui assurent une fonction d'aide, comme la définition d'une valeur de variable. Par exemple, l'ajout de insightsInclude: false à chaque propriété System.SetVariable de la brique Pizza réduit le parcours pour afficher uniquement les états de l'interaction entre l'utilisateur et la brique.
  • insightsEndConversation: true : marque la fin du rapport d'analyse afin que vous puissiez isoler la partie importante de la conversation. Vous pouvez également utiliser ce marqueur pour diviser le rapport par transition.
Vous pouvez ajouter ces propriétés à n'importe quel état.

Modélisation du flux de dialogue

Par défaut, les analyses suivent tous les états d'une conversation, mais vous ne souhaitez peut-être pas tous les inclure dans les rapports. Pour vous concentrer sur certaines transactions ou exclure les états de la génération de rapports, vous pouvez modéliser le flux de dialogue à l'aide des propriétés insightsInclude et insightsEndConversation. Ces propriétés, que vous pouvez ajouter à n'importe quel composant, fournissent un contrôle plus précis du rapport d'analyses.
Remarque

Ces propriétés ne sont prises en charge que sur les instances Oracle Digital Assistant provisionnées sur Oracle Cloud Infrastructure (parfois appelée infrastructure cloud Generation 2). Elles ne sont pas prises en charge sur les instances provisionnées sur Oracle Cloud Platform (comme c'est le cas de toutes les instances de version 19.4.1 d'Oracle Digital Assistant ).

Signalement de la fin d'une conversation

Au lieu de dépendre de la transition return afin de marquer la fin d'une conversation complète, vous pouvez marquer l'endroit où vous souhaitez arrêter l'enregistrement de la conversation pour les rapports d'analyse à l'aide de la propriété insightsEndConversation. Cette propriété permet de se concentrer uniquement sur les aspects du flux de dialogue qui vous intéressent. Par exemple, vous pouvez avoir besoin uniquement d'enregistrer une conversation jusqu'au moment où un client annule une commande mais pas après (aucune option ou aucun message de confirmation suivant n'oriente la conversation). Par défaut, cette propriété est définie sur false, ce qui signifie que les analyses continuent d'enregistrer jusqu'à ce qu'une transition return ait lieu ou jusqu'à ce que la propriété insightsEndConversation soit définie sur true (insightsEndConversation: true).
  cancelOrder:
    component: "System.Output"
    properties:
      text: "Your order is canceled."
      insightsEndConversation: true 
    transitions:
      next: "intent"
Etant donné que cet indicateur modifie la façon dont les rapports d'analyse affichent une conversation terminée, le nombre de conversations décompté après l'introduction de cet indicateur dans le flux de dialogue peut ne pas être comparable au nombre de conversations des versions précédentes de la brique.
Remarque

Le marqueur insightsEndConversation n'est pas utilisé dans le concepteur visuel de flux car les flux modulaires définissent déjà la conversation. Une conversation se termine lorsque le dernier état d'un flux de niveau supérieur a été atteint.

Rationalisation des données collectées par des analyses

Utilisez la propriété insightsInclude pour exclure les états que vous considérez comme superflus pour l'enregistrement dans les rapports. Pour exclure un état de la génération de rapports d'analyse, définissez cette propriété sur false :

...
  resolveSize:
    component: "System.SetVariable"
    properties:
      variable: "crust"
      value: "${iResult.value.entityMatches['PizzaSize'][0]}" 
      insightsInclude: false      
    transitions:
      ...
...
Cette propriété est propre à la génération de rapports d'analyse. Elle n'empêche pas l'affichage des états dans le testeur.
Remarque

insightsInclude n'est pas pris en charge par le concepteur visuel de flux.

Cas d'emploi des marqueurs d'analyse

Ces cas d'emploi typiques illustrent les meilleures pratiques pour faciliter la lecture des rapports en ajoutant les propriétés de marqueur de conversation au flux de dialogue.

Cas d'emploi 1 : vous voulez séparer les conversations par intention ou transition

Utilisez la propriété insightsEndConversation: true pour visualiser les interactions utilisateur qui se produisent dans une session de discussion spécifique en tant que conversations distinctes. Vous pouvez, par exemple, appliquer cette propriété à un état qui commence le parcours d'exécution pour une intention particulière, mais qui oriente le flux de dialogue.

L'état ShowMenu de la brique CrcPizzaBot, avec ses transitions pizza, pasta et textReceived, fait partie de ces états :
  ShowMenu:
    component: "System.CommonResponse"
    properties:
      processUserMessage: true
      metadata:
        responseItems:
          - type: "text"
            text: "Hello ${profile.firstName}, this is our menu today:"
            footerText: "${(textOnly.value=='true')?then('Enter number to make your choice','')}"
            name: "hello"
            separateBubbles: true
            actions:
              - label: "Pizzas"
                type: "postback"
                keyword: "${numberKeywords.value[0].keywords}"
                payload:
                  action: "pizza"
                name: "Pizzas"
              - label: "Pastas"
                keyword: "${numberKeywords.value[1].keywords}"
                type: "postback"
                payload:
                  action: "pasta"
                name: "Pastas"
    transitions:
      actions:
        pizza: "OrderPizza"
        pasta: "OrderPasta"
        textReceived: "Intent"
En ajoutant la propriété insightsEndConversation: true à l'état ShowMenu, vous pouvez décomposer le rapport sur les transitions suivantes :
  ShowMenu:
    component: "System.CommonResponse"
    properties:
      processUserMessage: true
      insightsEndConversation: true
…
Avec la propriété insightsEndConversation: true, les analyses prennent en compte toute interaction supplémentaire activée par la transition pizza, pasta ou textReceived en tant que conversation distincte, ce qui signifie que deux conversations, plutôt qu'une, sont répertoriées dans la mesure Conversations de la page Aperçu et que deux entrées différentes sont créées dans le rapport Conversations.
Remarque

Gardez à l'esprit que les nombres de conversations ne sont pas cohérents avec ceux enregistrés avant d'ajouter cette propriété.
La première entrée est pour le parcours d'exécution de l'intention ShowMenu, où la conversation se termine par l'état ShowMenu.

La deuxième est l'entrée propre à la transition qui nomme une intention lorsque l'action textReceived a été déclenchée ou indique Aucune intention en l'absence de deuxième intention. Lorsque vous choisissez Pizzas ou Pâtes dans le menu de liste affiché pour l'état showMenu, le rapport Conversation contient une entrée ShowMenu et une entrée Aucune intention pour la conversation de transition car l'utilisateur n'a saisi aucun texte devant être résolu en intention.

Cependant, lorsque vous déclenchez la transition textReceived en saisissant du texte, le rapport Conversation nomme l'intention résolue (OrderPizza, OrderPasta).

Cas d'emploi 2 : vous voulez exclure les états secondaires des rapports d'analyse de parcours

Le noeud states de la brique CrcPizzaBot commence par une série d'états System.SetVariable. Etant donné que ces états sont positionnés au début de la définition, ils commencent chaque rendu de chemin lorsque vous ne les avez pas exclus avec l'option Filtrer les états. Vous pouvez envisager de prendre en charge des états comme ceux-ci comme encombrement si vous concentrez plutôt sur les aspects transactionnels du chemin. Vous pouvez simplifier l'affichage du chemin manuellement à l'aide du menu Etats du filtre ou en ajoutant la propriété insightsInclude: false à la définition du flux de dialogue.

Vous pouvez ajouter la propriété insightsInclude: false à n'importe quel état que vous ne souhaitez pas voir dans le rapport Chemins.
  setTextOnlyChannel:
    component: "System.SetVariable"
    properties:
      insightsInclude: false
      variable: "textOnly"
      value: "${(system.channelType=='webhook')?then('true','false')}"
  setAutoNumbering:
    component: "System.SetVariable"
    properties:
      insightsInclude: false
      variable: "autoNumberPostbackActions"
      value: "${textOnly}"
  setCardsRangeStart:
    component: "System.SetVariable"
    properties:
      insightsInclude: false
      variable: "cardsRangeStart"
      value: 0
    transitions:
      ...
...
Pour CRCPizzaBotSkill, l'ajout de la propriété insightsInclude: false à chacun des états System.SetVariable place les états transactionnels au début du chemin.

Remarque

L'ajout de la propriété insightsInclude: false modifie non seulement le mode d'affichage des parcours, mais a également une incidence sur la somme indiquée pour la mesure Etats moyens.

Tutoriel : Optimisation des rapports d'analyse avec les marqueurs de conversation

Vous pouvez vous familiariser avec les marqueurs de conversation à l'aide du tutoriel suivant : Optimisation des rapports d'analyse avec les marqueurs de conversation.