Como o diálogo é processado
O diálogo usa as intenções que são identificadas na entrada do usuário, além do contexto do aplicativo, para interagir com o usuário e, finalmente, fornecer uma resposta útil.
O diálogo corresponde intenções (o que os usuários dizem que querem fazer) e respostas (o que o robô responde de volta). A resposta pode ser para uma pergunta como What are your store hours? ou a execução de um comando, como, por
exemplo, fazer um pedido. A intenção e a entidade podem ser informações suficientes para identificar a resposta correta, ou o diálogo pode pedir ao usuário uma entrada adicional, necessária para responder corretamente. Por exemplo, se um usuário
perguntar Where can I get some food?, talvez você queira esclarecer se ele quer um restaurante ou uma mercearia, se quer jantar no local ou levar para viagem, e assim por diante. É possível pedir mais detalhes em uma resposta de
texto e criar um ou mais nós-filhos para processar a nova entrada.
O diálogo é representado graficamente no watsonx Assistant como uma árvore. Crie uma ramificação para processar cada intenção que você deseja que sua conversa manipule. Uma ramificação é composta de diversos nós.
Nós de diálogo
Cada nó de diálogo contém, no mínimo, uma condição e uma resposta.
![Shows user input going to a box that contains the statement If: CONDITION, Then: RESPONSE](images/node1-empty.png
- Condição: Especifica as informações que devem estar presentes na entrada do usuário para que esse nó no diálogo seja acionado. As informações são geralmente uma intenção específica. Elas também podem ser um tipo de entidade, um valor de entidade ou um valor de variável de contexto. Para obter mais informações, consulte Condições..
- Resposta: a elocução usada por seu assistente para responder o usuário. A resposta também pode ser configurada para mostrar uma imagem ou uma lista de opções ou para acionar ações programáticas. Para obter mais informações, consulte Respostas
É possível pensar no nó como tendo uma construção if/then: se esta condição for verdadeira, então retornar essa resposta.
Por exemplo, o nó a seguir será acionado se a função de processamento de língua natural de seu assistente determinar que a entrada do usuário contém a intenção #cupcake-menu. Como resultado do nó sendo acionado, seu assistente responde
com uma resposta apropriada.
Um nó único com uma condição e resposta pode manipular solicitações simples do usuário. Porém, mais frequentemente, os usuários têm perguntas mais sofisticadas ou desejam ajuda com tarefas mais complexas. É possível incluir nós-filhos que solicitam ao usuário qualquer informação adicional necessária para seu assistente.
Fluxo de diálogo
O diálogo criado é processado por seu assistente do primeiro ao último nó da árvore.
Conforme percorre a árvore, seu assistente aciona esse nó quando localiza uma condição atendida. Em seguida, ele se move ao longo do nó acionado para verificar a entrada do usuário com relação a quaisquer condições do nó-filho. Conforme ele verifica os nós filhos, ele se move novamente do primeiro nó filho para o último.
Seu assistente continua avançando através da árvore de diálogo do primeiro ao último nó, ao longo de cada nó acionado, e do primeiro ao último nó-filho, ao longo de cada nó-filho acionado, até atingir o último nó na ramificação que está seguindo.
Ao iniciar a construção do diálogo, deve-se determinar as ramificações a serem incluídas e onde colocá-las. A ordem das ramificações é importante porque os nós são avaliados da primeira à última. O primeiro nó raiz cuja condição corresponde à entrada é usado; quaisquer nós que vêm depois na árvore não são acionados.
Quando seu assistente atinge o final de uma ramificação ou não consegue localizar uma condição avaliada como true no conjunto atual de nós-filhos sendo avaliados, ele volta para a base da árvore. Seu assistente processa os nós raiz do primeiro
ao último. Se nenhuma das condições é avaliada como true, a resposta do último nó na árvore, que geralmente tem uma condição especial anything_else que sempre é avaliada como true, é retornada.
É possível interromper o fluxo padrão do primeiro para o último das maneiras a seguir:
-
Customizando o que acontece após um nó ser processado. Por exemplo, é possível configurar um nó para ir diretamente para outro nó após ele ser processado, mesmo se o outro nó está posicionado antes na árvore. Para obter mais informações, consulte Definindo o que Fazer em Seguida.
-
Configurando respostas condicionais para ir para outros nós. Para obter mais informações, consulte Respostas condicionais.
-
Definindo as configurações de digressão para os nós de diálogo. As digressões também podem afetar como os usuários se movem pelos nós no tempo de execução. Se você ativar digressões fora da maioria dos nós e configurar retornos, os usuários poderão ir de um nó para outro e voltar novamente de modo mais fácil. Para obter mais informações, consulte Digressões
Diálogo de amostra
Esse diagrama mostra uma representação de uma árvore de diálogo construída com o editor de diálogo da interface gráfica com o usuário.
A árvore de diálogo neste diagrama contém dois nós de diálogo raiz. Uma árvore de diálogo típica provavelmente teria muitos outros nós, mas essa representação fornece um vislumbre de como um subconjunto de nós pode se parecer.
-
O primeiro nó raiz condiciona um valor de intenção. Ele tem dois nós-filhos, sendo que cada um condiciona um valor de entidade. O segundo nó-filho define duas respostas. A primeira resposta será retornada para o usuário se o valor da variável de contexto corresponder ao valor especificado na condição. Caso contrário, a segunda resposta será retornada.
Esse tipo padrão de nó é útil para capturar perguntas sobre um determinado tópico e, em seguida, na resposta raiz, fazer uma pergunta de acompanhamento que é direcionada pelos nós-filhos. Por exemplo, ele pode reconhecer uma pergunta do usuário sobre descontos e fazer uma pergunta de acompanhamento sobre se o usuário é um membro de quaisquer associações com as quais a empresa tem acordos de desconto especial. E os nós-filhos fornecem respostas diferentes com base na resposta do usuário para a pergunta sobre participação de associação.
-
O segundo nó raiz é um nó com intervalos. Ele também condiciona um valor de intenção. Ele define um conjunto de intervalos, um para cada parte de informações que você deseja coletar do usuário. Cada intervalo solicita uma pergunta para extrair a resposta do usuário. Ele procura um valor de entidade específico na resposta do usuário para o prompt, que ele então salva em uma variável de contexto de intervalo.
Esse tipo de nó é útil para coletar detalhes que você pode precisar para executar uma transação em nome do usuário Por exemplo, se a intenção do usuário é reservar um voo, os intervalos podem coletar as informações de local de origem e de destino, as datas de viagem e assim por diante.