C Marcadores de Conversa para Insights

Para habilidades com fluxos de caixas de diálogo baseados em YAML, você pode facilitar a leitura dos relatórios de Insights adicionando as seguintes propriedades de marcador de conversa ao fluxo de caixas de diálogo:
  • insightsInclude: false – Exclui estados dos caminhos de caixa de diálogo que são renderizados nos relatórios de Insights para Intenções e Conversas. Adicionar esta propriedade a qualquer estado impede que ela seja renderizada ou contada nos relatórios de Insights, então você pode querer aplicá-la aos estados que desempenham uma função de suporte, como definir um valor de variável. Por exemplo, adicionar insightsInclude: false a cada propriedade System.SetVariable em uma habilidade de pizza reduz o caminho para renderizar somente os estados da interação do usuário da habilidade.
  • insightsEndConversation: true – Marca o fim dos relatórios de Insights para que você possa isolar a parte relevante da conversa. Você também pode usar esse marcador para dividir o relatório por transição.
É possível adicionar essas propriedades a qualquer estado.

Modelar o Fluxo de Caixas de Diálogo

Por padrão, o Insights rastreia todos os estados em uma conversa, mas talvez você não queira incluir todos eles nos relatórios. Para se concentrar em determinadas transações ou excluir completamente os estados do relatório, você pode modelar o fluxo de caixas de diálogo usando as propriedades insightsInclude e insightsEndConversation. Essas propriedades, que você pode adicionar a qualquer componente, fornecem um melhor nível de controle sobre o relatório do Insights.
Observação

Essas propriedades são suportadas apenas em instâncias do Oracle Digital Assistant provisionadas no Oracle Cloud Infrastructure (às vezes chamada de infraestrutura de nuvem Geração 2). Não há suporte para elas em instâncias provisionadas no Oracle Cloud Platform (como todas as instâncias da versão 19.4.1 do Oracle Digital Assistant).

Marcar o Fim de uma Conversa

Em vez de depender da transição return para marcar o fim de uma conversa completa, você pode marcar onde deseja interromper a conversa para relatórios de insights usando a propriedade insightsEndConversation. Esta propriedade permite que você se concentre apenas nos aspectos do fluxo de caixas de diálogo desejado. Por exemplo, você pode precisar registrar apenas uma conversa no ponto em que um cliente cancela um pedido, mas não mais do que isso (nenhuma mensagem de confirmação subsequente ou opções que ramifiquem a conversa). Por padrão, essa propriedade é definida como false, o que significa que o Insights continua gravando até uma transição return, ou até que a propriedade insightsEndConversation seja definida como true (insightsEndConversation: true).
  cancelOrder:
    component: "System.Output"
    properties:
      text: "Your order is canceled."
      insightsEndConversation: true 
    transitions:
      next: "intent"
Como esse flag altera a maneira como o relatório de insights exibe uma conversa concluída, as contagens de conversas apuradas após a introdução desse flag no fluxo de caixas de diálogo podem não ser comparáveis às contagem de conversas de versões anteriores da habilidade.
Observação

O marcador insightsEndConversation não é usado no Designer de Fluxo Visual porque os fluxos modulares já delineiam a conversa. Uma conversa termina quando o último estado de um fluxo de nível superior é atingido.

Simplificar os Dados Coletados pelo Insights

Use a propriedade insightsInclude para excluir estados que você considera estranhos de serem registrados nos relatórios. Para excluir um estado do relatório do Insights, defina esta propriedade como false:

...
  resolveSize:
    component: "System.SetVariable"
    properties:
      variable: "crust"
      value: "${iResult.value.entityMatches['PizzaSize'][0]}" 
      insightsInclude: false      
    transitions:
      ...
...
Esta propriedade é específica somente dos relatórios do Insights. Ela não impede que os estados sejam renderizados no Testador.
Observação

insightsInclude não é suportado pelo Editor de Fluxo Visual.

Casos de Uso para Marcadores de Insights

Esses casos de uso típicos ilustram as melhores práticas para facilitar a leitura dos relatórios adicionando as propriedades do marcador de conversa ao fluxo de caixas de diálogo.

Caso de Uso 1: Você Deseja Separar Conversas por Intenções ou Transições

Use a propriedade insightsEndConversation: true para exibir as interações do usuário que ocorrem em uma única sessão de chat como conversas separadas. Você pode, por exemplo, aplicar esta propriedade a um estado que inicie o caminho de execução de uma intenção específica e ramifique o fluxo de caixas de diálogo.

O estado ShowMenu da habilidade do CrcPizzaBot, com suas transições pizza, pasta e textReceived, é um estado:
  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"
Ao adicionar a propriedade insightsEndConversation: true ao estado ShowMenu, você pode dividir o relatório por estas transições:
  ShowMenu:
    component: "System.CommonResponse"
    properties:
      processUserMessage: true
      insightsEndConversation: true
…
Por causa da propriedade insightsEndConversation: true, o Insights considera qualquer interação adicional ativada pelas transições pizza, pasta ou textReceived como uma conversa separada, o que significa que duas conversas, em vez de uma, são calculadas na métrica Conversas da página Visão Geral e, da mesma forma, duas entradas separadas são criadas no relatório Conversas.
Observação

Lembre-se de que as contagens de conversas serão inconsistentes com as contagens calculadas antes de adicionar esta propriedade.
A primeira entrada é para o caminho de execução da intenção ShowMenu em que a conversa termina com o estado ShowMenu.

A segunda é a entrada específica de transição que nomeia uma intenção quando a ação textReceived é acionada ou indica Nenhuma Intenção quando não há segunda intenção em execução. Quando você escolhe Pizzas ou Pastas no menu de lista renderizado para o estado showMenu, o relatório Conversa contém uma entrada ShowMenu e uma entrada Sem Intenção para a conversa de transição porque o usuário não informou nenhum texto que precisava ser resolvido para uma intenção.

No entanto, quando você aciona a transição textReceived digitando texto, o relatório Conversa nomeia a intenção resolvida (OrderPizza, OrderPasta).

Caso de Uso 2: Você Deseja Excluir os Estados de Suporte dos Relatórios Caminhos de Insights

O nó states da habilidade CrcPizzaBot começa com uma série de estados System.SetVariable. Como esses estados são posicionados no início da definição, eles começam a renderizar cada caminho quando você não os excluiu com a opção Estados de Filtro. Você pode considerar estados de apoio como desordem se seu foco estiver nos aspectos transacionais do caminho. Você pode simplificar a renderização do caminho manualmente usando o menu Estados do Filtro ou adicionando a propriedade insightsInclude: false à definição do fluxo de caixas de diálogo.

Você pode adicionar a propriedade insightsInclude: false a qualquer estado que não queira ver no relatório Caminhos.
  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:
      ...
...
Para CRCPizzaBotSkill, adicionar a propriedade insightsInclude: false a cada um dos estados System.SetVariable coloca os estados transacionais no início do caminho.

Observação

A adição da propriedade insightsInclude: false não só altera a forma como os caminhos são renderizados, mas afetará a soma relatada para a métrica Média de Estados.

Tutorial: Otimizar Relatórios do Insights com Marcadores de Conversa

Você pode praticar com marcadores de conversa usando o seguinte tutorial: Otimizar Relatórios do Insights com Marcadores de Conversa.