C Marques de conversation pour données clés

Pour les compétences avec des flux de dialogue basés sur YAML, vous pouvez faciliter la lecture des rapports Insights en ajoutant les propriétés de marqueur de conversation suivantes au flux de dialogue :
  • insightsInclude: false – Exclut les états des chemins de dialogue rendus dans les rapports Insights pour les intentions et les conversations. L'ajout de cette propriété à un état empêche le rendu ou le comptage de celui-ci dans les rapports Insights. Appliquez-la ces propriétés aux états qui ont une fonction complémentaire, comme la définition d'une valeur de variable. Par exemple, l'ajout de insightsInclude: false à chaque propriété System.SetVariable dans une compétence de commande de pizza réduit le chemin pour rendre uniquement les états de l'interaction compétence-utilisateur.
  • insightsEndConversation: true – Marque la fin du rapport des données clés afin que vous puissiez isoler la partie saillante de la conversation. Vous pouvez également utiliser ce marqueur pour décomposer le rapport par transition.
Vous pouvez ajouter ces propriétés à n'importe quel état.

Modéliser le flux de dialogue

Par défaut, les rapports de données clés effectuent le suivi de tous les états d'une conversation, mais il possible de ne pas les inclure tous dans les rapports. Pour vous concentrer sur certaines transactions, ou exclure entièrement certains états des 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 niveau de contrôle plus précis sur la production de rapports de données clés.
Note

Ces propriétés ne sont prises en charge que dans les instances d'Oracle Digital Assistant provisionnées dans Oracle Cloud Infrastructure (parfois appelée infrastructure en nuage de 2e génération). Elles ne sont pas prises en charge dans les instances provisionnées sur la plate-forme Oracle Cloud (commec'est le cas pour toutes les instances de la version 19.4.1 d'Oracle Digital Assistant ).

Marquer la fin d'une conversation

Au lieu d'utiliser la transition return pour marquer la fin d'une conversation complète, vous pouvez indiquer où vous voulez arrêter l'enregistrement de la conversation pour le rapport de données clés à l'aide de la propriété insightsEndConversation. Cette propriété vous permet de vous concentrer uniquement sur les aspects du flux de dialogue qui vous intéressent. Par exemple, vous pouvez enregistrer uniquement une conversation jusqu'au point où un client annule une commande, mais pas au-delà (les messages de confirmation ultérieurs ou les options qui créent des branches de la conversation ne sont pas enregistrés). Par défaut, cette propriété est réglée à False, c'est-à-dire que l'enregistrement continue jusqu'à une transition return ou jusqu' à ce que la propriété insightsEndConversation soit réglée à true (insightsEndConversation: true).
  cancelOrder:
    component: "System.Output"
    properties:
      text: "Your order is canceled."
      insightsEndConversation: true 
    transitions:
      next: "intent"
Comme cet indicateur modifie la façon dont les rapports de données clés voient une conversation terminée, les nombres de conversations obtenus après l'introduction de cet indicateur dans le flux de dialogue peuvent ne pas être comparables aux nombres de conversations pour les versions précédentes de la compétence.
Note

Le marqueur insightsEndConversation n'est pas utilisé dans le concepteur de flux visuel, 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 est atteint.

Simplifier les données collectées par les rapports de données clés

Utilisez la propriété insightsInclude pour exclure de l'enregistrement dans les rapports les états considérés comme inutiles. Pour exclure un état de la production de rapports de données clés, réglez cette propriété à false :

...
  resolveSize:
    component: "System.SetVariable"
    properties:
      variable: "crust"
      value: "${iResult.value.entityMatches['PizzaSize'][0]}" 
      insightsInclude: false      
    transitions:
      ...
...
Cette propriété est propre aux rapports de données clés. Elle n'empêche pas l'affichage des états dans le testeur.
Note

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

Cas d'utilisation pour les marqueurs de données clés

Ces cas d'utilisation 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'utilisation 1 : Vous voulez séparer les conversations par intentions ou transitions

Utilisez la propriété insightsEndConversation: true pour voir les interactions utilisateur qui se produisent dans une seule session de clavardage comme conversations distinctes. Vous pouvez, par exemple, appliquer cette propriété à un état qui commence le chemin d'exécution pour une intention spécifique, mais qui crée des branches dans le flux de dialogue.

L'état ShowMenu de la compétence CrcPizzaBot, avec ses transitions pizza, pasta et textReceived est en un exemple :
  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 segmenter le rapport par ces transitions :
  ShowMenu:
    component: "System.CommonResponse"
    properties:
      processUserMessage: true
      insightsEndConversation: true
…
En raison de la propriété insightsEndConversation: true, la fonction de données clés considère toute interaction supplémentaire activée par les transitions pizza, pasta ou textReceived comme une conversation distincte, ce qui signifie que deux conversations, plutôt qu'une, sont compilées dans la mesure Conversations de la page Overview (Aperçu) et, de même, deux entrées distinctes sont créées dans le rapport Conversations.
Note

Gardez à l'esprit que les nombres de conversation seront incompatibles avec ceux calculés avant l'ajout de cette propriété.
La première entrée concerne le chemin d'exécution de l'intention ShowMenu où la conversation se termine avec l'état ShowMenu.

La deuxième est l'entrée spécifique à la transition qui nomme une intention lorsque l'action textReceived a été déclenchée, ou note No Intent (Aucune intention) lorsqu'une deuxième intention n'est pas définie. Lorsque vous sélectionnez Pizzas ou Pastas dans le menu de liste rendu 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 entré aucun texte à résoudre dans une intention.

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

Cas d'utilisation 2 : Vous voulez exclure les états pris en charge des rapports de données clés sur le cheminement

Le noeud states de la compétence CrcPizzaBot commence par une série d'états System.SetVariable. Comme ces états sont positionnés au début de la définition, ils commencent le rendu de chaque chemin lorsque vous ne les avez pas exclus avec l'option Filter States (États du filtre). Vous pouvez envisager de soutenir des états comme ceux-ci comme un encombrement si votre attention est plutôt sur les aspects transactionnels du chemin. Vous pouvez simplifier le rendu du chemin manuellement à l'aide du menu État 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 à tout é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.

Note

L'ajout de la propriété insightsInclude: false modifie non seulement la façon dont les chemins sont rendus, mais affecte également la somme indiquée pour la mesure Average States (États moyens).

Tutoriel : Optimiser les rapports de données clés avec des marqueurs de conversation

Vous pouvez vous entraîner à utiliser des marqueurs de conversation à l'aide du tutoriel suivant : Optimiser les rapports de données clés avec des marqueurs de conversation.