IBM Cloud Docs
Construindo um diálogo complexo

A documentação para a experiência do classic Watson Assistant foi movida. Para a versão mais atualizada, consulte Construindo um diálogo complexo.

Construindo um diálogo complexo

Neste tutorial, você usará o serviço Watson Assistant para criar um diálogo para um assistente que ajuda os usuários com consultas sobre um restaurante fictício chamado Truck Stop Gourmand.

Objetivos do aprendizado

Quando terminar o tutorial, você entenderá como:

  • Planejar um diálogo
  • Definir intents customizados
  • Incluir nós de diálogo que podem manipular suas intenções
  • Incluir entidades para tornar suas respostas mais específicas
  • Incluir uma entidade padrão e usá-la no diálogo para localizar padrões na entrada do usuário
  • Configurar e referenciar variáveis de contexto

Duração

Este tutorial levará aproximadamente de 2 a 3 horas para ser concluído.

Pré-requisitos

Antes de iniciar, conclua o Tutorial de Introdução.

Você usará a qualificação de diálogo que criou e incluirá os nós no diálogo simples que construiu como parte do exercício de introdução.

Planejar o diálogo

Você está construindo um assistente para um restaurante denominado Truck Stop Gourmand que tem um local e um próspero negócio de bolinhos. Você deseja que o assistente simples responda perguntas do usuário sobre o restaurante, seu menu e cancele os pedidos de bolo do cliente. Portanto, é necessário criar intenções que manipulam consultas relacionadas aos assuntos a seguir:

  • Informações de Restaurante
  • Detalhes do Menu
  • Cancelamentos de pedido

Você iniciará criando intenções que representam esses assuntos e, em seguida, construirá um diálogo que responda às perguntas do usuário sobre eles.

Responda às perguntas sobre o restaurante

Inclua uma intenção que reconheça quando os clientes perguntarem detalhes sobre o restaurante em si. Uma intenção é o propósito ou objetivo expresso em entrada do usuário. A intenção #General_About_You que é fornecida com o catálogo de conteúdo Geral atende a uma função semelhante, mas seus exemplos do usuário são projetados para focar as consultas sobre o assistente, em oposição ao negócio que está usando o assistente para ajudar seus clientes. Então, você incluirá sua própria intenção.

Inclua a intenção #about_restaurante

  1. Na guia Intenções, clique em Criar intenção.

    Mostra o botão Criar intenção na página Intenções.

  2. Insira about_restaurant no campo Nome da intenção e, em seguida, clique em Criar intenção.

    Mostra a intenção #about_restaurant sendo incluída.

  3. Inclua os exemplos de usuário a seguir:

    Tell me about the restaurant
    i want to know about you
    who are the restaurant owners and what is their philosophy?
    What's your story?
    Where do you source your produce from?
    Who is your head chef and what is the chef's background?
    How many locations do you have?
    do you cater or host functions on site?
    Do you deliver?
    Are you open for breakfast?
    
  4. Clique no ícone Fechar Fechar seta para terminar de incluir a intenção #about_restaurant.

Você incluiu uma intenção e forneceu exemplos de elocuções que os usuários reais podem inserir para acionar essa intenção.

Incluir um nó de diálogo que é acionado pela intenção #about_restaurant

Inclua um nó de diálogo que reconheça quando a entrada do usuário for mapeada para a intenção criada na etapa anterior, fazendo com que sua condição verifique se seu assistente reconheceu a intenção #about_restaurant na entrada do usuário.

  1. Clique na guia ** Diálogo ** .

  2. Localize o nó #General_Greetings na árvore de diálogo.

    Você incluirá um nó que verifica perguntas sobre o restaurante depois que este nó de saudação inicial refletir o fluxo que você pode esperar encontrar em uma conversa normal. Por exemplo, Hello. então Tell me about yourself.

  3. Clique no ícone Mais Mais opções no nó #General_Greetings e, em seguida, selecione Incluir nó abaixo.

    Mostra o menu Incluir nó abaixo aberto no nó de diálogo #General_Greetings.

  4. Comece a digitar #about_restaurant no campo Se o assistente reconhecer desse nó. Em seguida, selecione a opção #about_restaurant .

  5. Inclua o texto a seguir como a resposta.

    Para copiar o texto, clique no ícone de cópia Indica que é possível copiar o bloco de código. que está associado ao bloco de texto:

    Truck Stop Gourmand is the brainchild of Gloria and Fred Smith. What started out as a food truck in 2004 has expanded into a thriving restaurant. We now have one brick-and-mortar restaurant in downtown Portland. The bigger kitchen brought with it new chefs, but each one is faithful to the philosophy that made the Smith food truck so popular to begin with: deliver fresh, local produce in inventive and delicious ways. Join us for lunch or dinner seven days a week. Or order a cake from our bakery.
    
  6. Vamos incluir uma imagem na resposta também.

    Clique em ** Incluir tipo de resposta **. Selecione ** Imagem ** na lista suspensa. No campo Origem de imagem, inclua https://www.ibmlearningcenter.com/wp-content/uploads/2018/02/IBM-Learning-Center-Food4.jpg.

  7. Mova o tipo de resposta da imagem para cima, para que ele seja exibido na resposta antes que o texto seja exibido. Clique na seta para cima Mover para reordenar os dois tipos de resposta.

    Mostra o tipo de resposta de imagem listado antes do tipo de resposta de texto.

  8. Clique em Fechar para fechar a visualização de edição.

Teste o nó de diálogo #about_restaurante

Teste a intenção verificando se as elocuções do usuário semelhantes, mas não exatamente iguais, aos exemplos incluídos nos dados de treinamento treinaram com sucesso seu assistente para reconhecer entradas com uma intenção #about_restaurant.

  1. Clique no ícone Experimentar para abrir o painel "Experimentar".

  2. Insira I want to learn more about your restaurant.

    Seu assistente indica que a intenção #about_restaurant foi reconhecida e retorna uma resposta com a imagem e o texto especificados para o nó de diálogo.

    Mostra a área de janela Experimentar reconhecendo a intenção #about_restaurant e mostrando a resposta de imagem e texto.

Parabéns! Você incluiu uma intenção customizada e um nó de diálogo que sabe como manipulá-lo.

A intenção #about_restaurant foi projetada para reconhecer uma variedade de perguntas gerais sobre o restaurante. Você incluiu um único nó para capturar essas perguntas. A resposta é longa, mas é uma instrução única que pode potencialmente responder perguntas sobre todos os tópicos a seguir:

  • Os proprietários do restaurante
  • A história do restaurante
  • A filosofia
  • O número de sites
  • Os dias de operação
  • As refeições servidas
  • O fato de o restaurante fazer bolos por encomenda

Para tipos de perguntas gerais e mais fáceis, uma única resposta geral é adequada.

Responda às perguntas sobre o menu

Uma pergunta chave de potenciais clientes do restaurante é sobre o menu. O restaurante Truck Stop Gourmand muda o menu diariamente. Além de seu menu padrão, ele tem menus vegetariano e de confeitaria. Quando um usuário pergunta sobre o menu, o diálogo precisa descobrir qual menu deve ser compartilhado e, em seguida, fornecer um hyperlink para o menu que é mantido atualizado diariamente no website do restaurante. Você nunca desejará codificar permanentemente as informações em um nó de diálogo se essas informações mudarem regularmente.

Incluir uma intenção de #menu

  1. Clique na guia Intenções.

  2. Clique em Criar intento.

    Mostra o botão Criar intenção na página Intenções.

  3. Insira menu no campo Nome da intenção e, em seguida, clique em Criar intenção.

    Mostra a intenção do menu sendo incluída e o botão Criar intenção.

  4. Inclua os exemplos de usuário a seguir:

    I want to see a menu
    What do you have for food?
    Are there any specials today?
    where can i find out about your cuisine?
    What dishes do you have?
    What are the choices for appetizers?
    do you serve desserts?
    What is the price range of your meals?
    How much does a typical dish cost?
    tell me the entree choices
    Do you offer a prix fixe option?
    
  5. Clique no ícone Fechar Fechar seta para terminar de incluir a intenção #menu.

Incluir um nó de diálogo que é acionado pela intenção #menu

Inclua um nó de diálogo que reconheça quando a entrada do usuário for mapeada para a intenção criada na etapa anterior, fazendo com que sua condição verifique se seu assistente reconheceu a intenção #menu na entrada do usuário.

  1. Clique na guia ** Diálogo ** .

  2. Localize o nó #about_restaurant na árvore de diálogo.

    Você incluirá um nó que verifica perguntas sobre o menu depois deste nó.

  3. Clique no ícone Mais Mais opções no nó #about_restaurant e, em seguida, selecione Incluir nó abaixo.

    Mostra um nó de diálogo sendo incluído após o nó #about_restaurant.

  4. Comece a digitar #menu no campo Se o assistente reconhecer desse nó. Em seguida, selecione a opção #menu .

    Mostra a intenção #menu sendo incluída como a condição para um nó de diálogo.

  5. Inclua o texto a seguir como a resposta:

    In keeping with our commitment to giving you only fresh local ingredients, our menu changes daily to accommodate the produce we pick up in the morning. You can find today's menu on our website.

  6. Inclua um tipo de resposta opção que forneça uma lista de opções para o usuário escolher. Nesse caso, a lista de opções inclui as diferentes versões do menu que estão disponíveis.

    Clique em ** Incluir tipo de resposta **. Selecione ** Opção ** na lista suspensa.

    Mostra o tipo de resposta de opção sendo incluído na resposta do nó de diálogo #menu.

  7. No campo Título, inclua Que menu você deseja ver?

    Mostra o campo de título preenchido e o botão de opção Incluir.

  8. Clique em ** Incluir opção **.

  9. No campo Rótulo da lista, inclua Standard. O texto que você inclui como o rótulo é exibido na resposta para o usuário como uma opção selecionável.

  10. No campo Valor, inclua standard menu. O texto especificado como o valor é enviado ao seu assistente como uma nova entrada do usuário quando um usuário escolhe essa opção na lista e clica nela.

  11. Repita as duas etapas anteriores para incluir informações de rótulo e de valor para os tipos de menu restantes:

Detalhes do Tipo de Resposta da Opção
Rótulo da lista Valor
Vegetariano menu vegetariano
Cake shop cardápio de bolo

Mostra a lista de opções preenchida com tipos de menu.

  1. Clique em Fechar para fechar a visualização de edição.

Incluir uma entidade @menu

Para reconhecer os diferentes tipos de menus que os clientes indicam que desejam ver, você incluirá uma entidade @menu. As entidades representam uma classe de objeto ou um tipo de dados que é relevante para o propósito de um usuário. Verificando a presença de entidades específicas na entrada do usuário, é possível incluir mais respostas, cada uma padronizada para direcionar uma solicitação do usuário distinta. Nesse caso, você incluirá uma entidade @menu que seja capaz de distinguir entre os diferentes tipos de menu.

  1. Clique na guia ** Entidades ** .

    Mostra a página de entidades vazias com o botão Criar entidade.

  2. Clique em ** Criar entidade **.

  3. Insira menu no campo de nome da entidade.

    Mostra a entidade @menu sendo incluída e o botão Criar entidade.

  4. Clique em ** Criar entidade **.

  5. Inclua standard no campo Nome do valor e, em seguida, inclua standard menu no campo Sinônimos e pressione Enter.

  6. Inclua os sinônimos adicionais a seguir:

    • bill of fare
    • cuisine
    • carte du jour
  7. Clique em Incluir valor para incluir o valor @menu:standard.

  8. Inclua vegetarian no campo Nome do valor e, em seguida, inclua vegetarian menu no campo Sinônimos e pressione Enter.

  9. Clique no campo Incluir sinônimo vazio e, em seguida, inclua estes sinônimos adicionais:

    • vegano
    • somente plantas
  10. Clique em Incluir valor para incluir o valor @menu:vegetarian.

  11. Inclua cake no campo Nome do valor e, em seguida, inclua cake menu no campo Sinônimos e pressione Enter.

  12. Inclua os sinônimos adicionais a seguir:

    • cardápio de bolo
    • menu de sobremesas
    • Ofertas de padaria
  13. Clique em Incluir valor para incluir o valor @menu:cake.

  14. Clique no ícone Fechar Fechar seta para finalizar a inclusão da entidade @menu.

Incluir nós-filhos que são acionados pelos tipos de entidade @menu

Nesta etapa, você incluirá nós-filhos no nó de diálogo que verifica a intenção #menu. Cada nó-filho mostrará uma resposta diferente dependendo do tipo de entidade @menu que o usuário escolhe na lista de opções.

  1. Clique na guia ** Diálogo ** .

  2. Localize o nó #menu na árvore de diálogo.

    Você incluirá um nó-filho para manipular cada opção de tipo de menu que você incluiu no nó #menu.

  3. Clique no ícone Mais Mais opções no nó #menu e, em seguida, selecione Incluir nó filho.

    Mostra um nó filho sendo incluído no nó de diálogo #menu.

  4. Comece a digitar @menu:standard no campo Se o assistente reconhecer desse nó. Em seguida, selecione a opção @menu:standard .

  5. Inclua a mensagem a seguir no campo de texto de resposta, To see our menu, go to the <a href="https://www.example.com/menu.html" target="blank">menu</a> page on our website.

    Mostra um nó filho @menu:standard sendo incluído no nó de diálogo #menu.

  6. Clique em Fechar para fechar a visualização de edição.

  7. Clique no ícone Mais Mais opções no nó @menu:standard e, em seguida, selecione Incluir nó abaixo.

  8. Comece a digitar @menu:vegetarian no campo Se o assistente reconhecer desse nó. Em seguida, selecione a opção @menu:vegetarian .

  9. Inclua a mensagem a seguir no campo de texto de resposta, To see our vegetarian menu, go to the <a href="https://www.example.com/vegetarian-menu.html" target="blank">vegetarian menu</a> page on our website.

    Mostra um nó filho @menu:vegetarian sendo incluído no nó de diálogo #menu.

  10. Clique em Fechar para fechar a visualização de edição.

  11. Clique no ícone Mais Mais opções no nó @menu:vegetarian e, em seguida, selecione Incluir nó abaixo.

  12. Comece a digitar @menu:cake no campo Se o assistente reconhecer desse nó. Em seguida, selecione a opção @menu:cake .

  13. Inclua a mensagem a seguir no campo de texto de resposta, To see our cake shop menu, go to the <a href="https://www.example.com/menu.html" target="blank">cake shop menu</a> page on our website.

    Mostra um nó filho @cake sendo incluído no nó de diálogo #menu.

  14. Clique em Fechar para fechar a visualização de edição.

  15. O menu padrão provavelmente será solicitado com mais frequência, portanto, mova-o para o final da lista de nós-filhos. Colocá-lo por último pode ajudar a evitar que ele seja acionado acidentalmente quando alguém perguntar sobre um menu de especialidade em vez do menu padrão.

    Clique no ícone Mais Mais opções no nó @menu:standard e, em seguida, selecione Mover.

    Mostra o nó @menu:standard sendo movido para vir após o nó @menu:cake.

  16. Selecione o nó @menu:cake e, em seguida, escolha Abaixo do nó.

    Mostra os nós filhos depois do nó #menu após eles serem reordenados.

Você incluiu nós que reconhecem solicitações do usuário para detalhes do menu. Sua resposta informa ao usuário que há três tipos de menus disponíveis e solicita que ele escolha um. Quando o usuário escolhe um tipo de menu, é exibida uma resposta que fornece um link de hipertexto para uma página da web com os detalhes do menu solicitados.

Testar os nós de diálogo de opções de menu

Teste os nós de diálogo que você incluiu para reconhecer as perguntas do menu.

  1. Clique no ícone Experimentar para abrir o painel "Experimentar".

  2. Insira What type of food do you serve?

    Seu assistente indica que a intenção #menu foi reconhecida e exibe a lista de opções de menu para o usuário escolher.

    Mostra a área de janela Experimentar quando a entrada do usuário aciona a intenção #menu e a resposta de opções.

  3. Clique na opção Cake shop .

    Seu assistente reconhece a intenção #menu e a referência de entidade @menu:cake e exibe a resposta, To see our cake shop menu, go to the cake shop page on our website.

    Mostra a área de janela Experimentar depois que o usuário escolhe a opção da loja de bolos.

  4. Clique no hyperlink confeitaria na resposta.

    Uma nova página do navegador da web é aberta e exibe o website example.com.

  5. Feche a página da web example.com.

Bom trabalho. Você incluiu com êxito uma intenção e uma entidade que podem reconhecer solicitações do usuário para obter detalhes do menu e podem direcionar os usuários para o menu apropriado.

A intenção #menu representa uma necessidade chave comum de potenciais clientes do restaurante. Devido à sua importância e popularidade, você incluiu uma seção mais complexa no diálogo para direcioná-lo bem.

Gerenciar pedidos de bolo

Os clientes fazem pedidos pessoalmente, pelo telefone ou usando o formulário de pedido no website. Depois que o pedido é feito, os usuários podem cancelá-lo por meio do assistente virtual. Primeiro, defina uma entidade que possa reconhecer números de pedido. Em seguida, inclua uma intenção que reconheça quando os usuários desejam cancelar um pedido de bolo.

Incluindo uma entidade padrão de número de pedido

Você deseja que o assistente reconheça os números de pedido, portanto, criará uma entidade padrão para reconhecer o formato exclusivo que o restaurante usa para identificar seus pedidos. A sintaxe dos números de pedidos usada pela padaria do restaurante tem duas letras maiúsculas, seguidas por cinco números. Por exemplo, YR34663. Inclua uma entidade que possa reconhecer esse padrão de caractere.

  1. Clique na guia ** Entidades ** .

  2. Clique em ** Criar entidade **.

  3. Insira order_number no campo de nome da entidade.

  4. Clique em ** Criar entidade **.

    Mostra o campo para inclusão de valores para a entidade @order_number.

  5. Inclua order_syntax no campo Nome do valor e, em seguida, clique na seta para baixo ao lado de Sinônimos para mudar o tipo para Padrões.

    Mostra o usuário optando por incluir um padrão para a entidade.

  6. Inclua a expressão regular a seguir no campo Padrão: [A-Z]{2}\d{5}

    Mostra que um padrão foi especificado para a entidade @order_number.

  7. Clique em Incluir valor.

    Mostra que o valor padrão foi incluído.

  8. Clique no ícone Fechar Fechar seta para finalizar a inclusão da entidade @order_number.

    Mostra que a entidade @order_number foi incluída.

Incluir uma intenção de ordem de cancelamento

  1. Clique na guia Intenções.

  2. Clique em Criar intento.

  3. Insira cancel_order no campo Nome da intenção e, em seguida, clique em Criar intenção.

  4. Inclua os exemplos de usuário a seguir:

    I want to cancel my cake order
    I need to cancel an order I just placed
    Can I cancel my cake order?
    I'd like to cancel my order
    There's been a change. I need to cancel my bakery order.
    please cancel the birthday cake order I placed last week
    The party theme changed; we don't need a cake anymore
    that order i placed, i need to cancel it.
    

    Mostra que a intenção #cancel_order foi incluída.

  5. Clique no ícone Fechar Fechar seta para terminar de incluir a intenção #cancel_order.

Incluir uma intenção de yes

Antes de executar uma ação em nome do usuário, deve-se obter a confirmação de que você está tomando a ação adequada. Inclua uma intenção #yes no diálogo que possa reconhecer quando um usuário concordar com o que seu assistente estiver propondo.

  1. Clique na guia Intenções.

  2. Clique em Criar intento.

  3. Insira yes no campo Nome da intenção e, em seguida, clique em Criar intenção.

  4. Inclua os exemplos de usuário a seguir:

    Yes
    Correct
    Please do.
    You've got it right.
    Please do that.
    that is correct.
    That's right
    yeah
    Yup
    Yes, I'd like to go ahead with that.
    

    Mostra que a intenção #yes foi incluída.

  5. Clique no ícone Fechar Fechar seta para terminar de incluir a intenção #yes.

Incluir nós de diálogo que podem gerenciar solicitações para cancelar um pedido

Agora, inclua um nó de diálogo que possa manipular solicitações para cancelar um pedido de bolo.

  1. Clique na guia ** Diálogo ** .

  2. Localize o nó #menu . Clique no ícone Mais Mais opções no nó #menu e, em seguida, selecione Incluir nó abaixo.

  3. Comece a digitar #cancel_order no campo Se o assistente reconhecer desse nó. Em seguida, selecione a opção #cancel_order .

  4. Inclua a mensagem a seguir no campo de texto de resposta:

    If the pickup time is more than 48 hours from now, you can cancel your order.
    

    Mostra um nó de diálogo que condiciona a intenção #cancel_order e retorna uma resposta de texto.

    Antes de poder realmente cancelar o pedido, é necessário saber o número do pedido. O usuário pode especificar o número do pedido na solicitação original. Portanto, para evitar perguntar o número do pedido novamente, verifique um número com o padrão de número do pedido na entrada original. Para fazer isso, defina uma variável de contexto que salvará o número do pedido se ele for especificado.

  5. Você define uma variável de contexto no editor de contexto. Na seção de resposta do nó, clique no ícone Mais Mais opções e, em seguida, selecione Abrir editor de contexto.

    Mostra a opção de menu Abrir editor de contexto da visualização de edição do nó.

  6. Insira o par de valores e nome da variável de contexto a seguir:

    Detalhes da Variável de Contexto do
    Variável Valor
    $ordernumber <? @order_number.literal ?>

    O valor da variável de contexto (<? @order_number.literal ?>) é uma expressão SpEL que captura o número que o usuário especifica que corresponde ao padrão definido pela entidade padrão @order_number. O salvamento é feito na variável $ordernumber.

    Mostra a definição de variável de contexto $ordernumber.

  7. Clique em Fechar para fechar a visualização de edição.

    Agora, inclua nós-filhos que perguntam o número do pedido ou obtêm confirmação do usuário de que deseja cancelar um pedido com o número do pedido detectado.

  8. Clique no ícone Mais Mais opções no nó #cancel_order e, em seguida, selecione Incluir nó filho.

    Mostra o menu no nó #cancel_order com a opção de menu Incluir nó filho selecionada.

  9. Inclua um rótulo no nó para distingui-lo de outros nós-filhos que você incluirá. No campo de nome, inclua Ask for order number. Digite true no campo Se o assistente reconhecer desse nó.

  10. Inclua a mensagem a seguir no campo de texto de resposta:

    What is the order number?
    

    Mostra os detalhes do nó Solicitar número do pedido.

  11. Clique em Fechar para fechar a visualização de edição.

    Agora, inclua outro nó-filho que informa ao usuário que você está cancelando o pedido.

  12. Clique no ícone Mais Mais opções no nó Ask for order number e, em seguida, selecione Incluir nó filho.

  13. Digite @order_number no campo Se o assistente reconhecer desse nó.

  14. Abra o editor de contexto. Clique no ícone Mais Mais opções e selecione Abrir editor de contexto.

  15. Insira o par de valores e nome da variável de contexto a seguir:

    Detalhes da Variável de Contexto do
    Variável Valor
    $ordernumber <? @order_number.literal ?>

    O valor da variável de contexto (<? @order_number.literal ?>) é uma expressão SpEL que captura o número que o usuário especifica que corresponde ao padrão definido pela entidade padrão @order_number. O salvamento é feito na variável $ordernumber.

  16. Inclua a mensagem a seguir no campo de texto de resposta:

    OK. The order $ordernumber is canceled. We hope we get the opportunity to bake a cake for you sometime soon.
    

    Mostra os detalhes do nó filho número do pedido.

  17. Clique em Fechar para fechar a visualização de edição.

  18. Inclua outro nó para capturar o caso em que um usuário fornece um número, mas ele não é um número do pedido válido. Clique no ícone Mais Mais opções no nó @order_number e, em seguida, selecione Incluir nó abaixo.

  19. Digite true no campo Se o assistente reconhecer desse nó.

  20. Inclua a mensagem a seguir no campo de texto de resposta:

    I need the order number to cancel the order for you. If you don't know the order number, please call us at 958-234-3456 to cancel over the phone.
    

    Mostra o nó que responde quando o usuário não fornece um número de pedido válido.

  21. Clique em Fechar para fechar a visualização de edição.

  22. Inclua um nó após o nó de solicitação de cancelamento do pedido inicial que responderá no caso em que o usuário fornecer o número do pedido na solicitação inicial, para não ter que pedir novamente. Clique no ícone Mais Mais opções no nó #cancel_order e, em seguida, selecione Incluir nó filho.

  23. Inclua um rótulo no nó para distingui-lo de outros nós-filhos. No campo de nome, inclua Number provided. Digite @order_number no campo Se o assistente reconhecer desse nó.

  24. Inclua a mensagem a seguir no campo de texto de resposta:

    Just to confirm, you want to cancel order $ordernumber?
    

    Mostra o nó que responde quando o usuário fornece um número de pedido válido.

  25. Clique em Fechar para fechar a visualização de edição.

    Deve-se incluir nós-filhos que verificam a resposta do usuário para sua pergunta de confirmação.

  26. Clique no ícone Mais Mais opções no nó Number provided e, em seguida, selecione Incluir nó filho.

  27. Digite #yes no campo Se o assistente reconhecer desse nó.

  28. Inclua a mensagem a seguir no campo de texto de resposta:

    OK. The order $ordernumber is canceled. We hope we get the opportunity to bake a cake for you sometime soon.
    

    Mostra o nó que responde quando o usuário confirma que deseja cancelar o pedido.

  29. Clique em Fechar para fechar a visualização de edição.

  30. Clique no ícone Mais Mais opções no nó #yes e, em seguida, selecione Incluir nó abaixo.

  31. Digite true no campo Se o assistente reconhecer desse nó.

    Não inclua uma resposta. Em vez disso, você redirecionará os usuários para a ramificação que pergunta os detalhes do número do pedido criados anteriormente.

  32. Na seção E finalmente, escolha Ir para.

    Mostra um nó verdadeiro que não tem resposta, mas tem a opção de menu Ir para selecionada.

  33. Selecione a condição do nó Perguntar o número do pedido.

    Mostra a escolha da condição do nó Solicitar número do pedido como o destino ir para.

  34. Clique em Fechar para fechar a visualização de edição.

  35. Mova o nó Número fornecido antes do nó Perguntar o número do pedido. Clique no ícone Mais Mais opções no nó Number provided e, em seguida, selecione Mover. Selecione o nó Perguntar o número do pedido e, em seguida, clique em Acima do nó.

    Mostra a mudança do nó filho Número fornecido para antes do nó Solicitar número do pedido.

  36. Force a conversa para avaliar os nós-filhos sob o nó #cancel_order no tempo de execução. Clique para abrir o nó #cancel_order na visualização de edição e, em seguida, na seção And finally, selecione Skip user input.

    Mostra a configuração do nó Cancelar pedido sendo definida para ignorar a entrada de usuário.

Testar cancelamentos de pedido

Teste a capacidade de seu assistente de reconhecer padrões de caracteres que correspondem ao padrão usado para números de pedido do produto na entrada do usuário.

  1. Clique no ícone Experimentar para abrir o painel "Experimentar".

  2. Insira i want to cancel my order number TW12345.

    Seu assistente reconhece a intenção #cancel_order e a entidade @order_number. Ele responde com If the pickup time is more than 48 hours from now, you can cancel your order. Just to confirm, you want to cancel order TW12345?

  3. Insira, Yes.

    O assistente reconhece a intenção #yes e responde com OK. The order TW12345 is canceled. We hope we get the opportunity to bake a cake for you sometime soon.

    Mostra o teste da área de janela Experimentar do nó Cancelar pedido número quando o usuário fornece o número do pedido na entrada inicial.

    Agora, tente isso quando você não souber o número do pedido.

  4. Clique em Limpar na área de janela "Experimente" para recomeçar. Insira I want to cancel my order.

    O assistente reconhece a intenção #cancel_order e responde com If the pickup time is more than 48 hours from now, you can cancel your order. What is the order number?

  5. Insira I don't know.

    O assistente responde com I need the order number to cancel the order for you. If you don't know the order number, please call us at 958-234-3456 to cancel over the phone.

    Mostra o teste da área de janela Experimentar do nó Cancelar pedido número quando o usuário não sabe o número do pedido.

Incluir nós para esclarecer o formato do número do pedido

Se você fizer mais testes, poderá achar que o diálogo não é muito útil em cenários em que o usuário não se lembra do formato do número do pedido. O usuário pode incluir somente os números ou as letras também, mas esquecer que elas devem estar em maiúsculas. Então, seria uma boa ideia dar uma sugestão a eles nesses casos, certo? Se você desejar ser gentil, inclua outro nó na árvore de diálogo que verifica os números na entrada do usuário.

  1. Localize o nó @order_number filho do nó Solicitar número do pedido.

  2. Clique no ícone Mais Mais opções no nó @order_number e, em seguida, selecione Incluir nó abaixo.

  3. No campo de condição, inclua input.text.find('\d'), que é uma expressão SpEL que diz que se você localizar um ou mais números na entrada do usuário, essa resposta será acionada.

  4. No campo de resposta de texto, inclua a resposta a seguir:

    The correct format for our order numbers is AAnnnnn. The A's represents 2 uppercase letters, and the n's represent 5 numbers. Do you have an order number in that format?
    
  5. Clique em Fechar para fechar a visualização de edição.

  6. Clique no ícone Mais Mais opções no nó input.text.find('\d') e, em seguida, selecione Incluir nó filho.

  7. Digite true no campo Se o assistente reconhecer desse nó.

  8. Ative as respostas condicionais clicando em Customizar, rolando para baixo e, em seguida, configurando o comutador Várias respostas condicionadas para Ativado.

  9. Clique em Aplicar.

  10. No campo recém-incluído Se o assistente reconhecer, digite @order_number e, no campo, Responder com, digite:

    OK. The order $ordernumber is canceled. We hope we get the opportunity to bake a cake for you sometime soon.
    
  11. Clique em ** Incluir resposta **.

  12. No campo Se o assistente reconhecer, digite true e, no campo Responder com, digite:

    I need the order number to cancel the order for you. If you don't know the order number, please call us at 958-234-3456 to cancel over the phone.
    

    Mostra a inclusão de um nó que verifica os números na entrada do usuário e responde com uma sugestão sobre o formato de número do pedido.

  13. Clique em Fechar para fechar a visualização de edição.

Agora, quando você testar, será possível fornecer um conjunto de números ou uma combinação de números e texto como entrada e o diálogo lembrará o formato do número do pedido correto. Você testou com êxito seu diálogo, localizou uma fragilidade nele e corrigiu-a.

Outra maneira possível de direcionar esse tipo de cenário é incluir um nó com intervalos. Consulte o tutorial Incluindo um nó com intervalos em um diálogo para saber mais sobre o uso de intervalos.

Inclua o toque pessoal

Se o usuário mostrar interesse no robô em si, você desejará que o assistente virtual reconheça essa curiosidade e se engaje com o usuário de uma maneira mais pessoal. Você pode se lembrar da intenção #General_About_You, que é fornecida com o catálogo de conteúdo Geral, que consideramos usar anteriormente, antes de ter incluído sua própria intenção #about_restaurant customizada. Ela é construída para reconhecer apenas essas perguntas do usuário. Inclua um nó com condições para essa intenção. Em sua resposta, é possível perguntar o nome do usuário e salvá-lo em uma variável $username que pode ser usada em outro lugar no diálogo, se disponível.

Incluir um nó que manipula perguntas sobre o robô

Inclua um nó de diálogo que possa reconhecer o interesse do usuário no robô e responder.

  1. Clique na guia ** Diálogo ** .

  2. Localize o nó Welcome na árvore de diálogo.

  3. Clique no ícone Mais Mais opções no nó Welcome e, em seguida, selecione Incluir nó abaixo.

  4. Comece a digitar #General_About_You no campo Se o assistente reconhecer desse nó. Em seguida, selecione a opção #General_About_You .

  5. Inclua a mensagem a seguir no campo de texto de resposta:

    I am a virtual assistant that is designed to answer your questions
    about the Truck Stop Gourmand restaurant. What should I call you?
    

    Mostra o nó #General_About_You sendo incluído.

  6. Clique em Fechar para fechar a visualização de edição.

  7. Clique no ícone Mais Mais opções no nó #General_About_You e, em seguida, selecione Incluir nó filho.

  8. No campo Se o assistente reconhecer desse nó, insira true.

  9. Inclua a mensagem a seguir no campo de texto de resposta:

    Hello, <? input.text ?>! It's lovely to meet you. How can I help you today?
    
  10. Para capturar o nome que o usuário fornece, inclua uma variável de contexto no nó. Clique no ícone Mais Mais opções e selecione Abrir editor de contexto.

  11. Insira o par de valores e nome da variável de contexto a seguir:

    Detalhes da variável de contexto do nome do
    Variável Valor
    nome do usuário <? input.text ?>

    O valor de variável de contexto (<? input.text ?>) é uma expressão SpEL que captura o nome de usuário como ele é especificado pelo usuário e, em seguida, o salva para a variável de contexto $username.

  12. Clique em Fechar para fechar a visualização de edição.

Se, no tempo de execução, o usuário acionar esse nó e fornecer um nome, você saberá o nome do usuário. Se você o souber, deverá usá-lo. Inclua respostas condicionais no nó de diálogo de saudação que você incluiu anteriormente para incluir uma resposta condicional que use o nome do usuário, se ele for conhecido.

Incluir o nome do usuário na saudação

Se você souber o nome do usuário, deverá incluí-lo em sua mensagem de saudação. Para fazer isso, inclua respostas condicionais e inclua uma variação da saudação que inclui o nome do usuário.

  1. Localize o nó #General_Greetings na árvore de diálogo e clique para abri-lo na visualização de edição.

  2. Clique em Customizar, role para baixo e, em seguida, configure o comutador Várias respostas condicionadas para Ativado.

    Mostra que a configuração de respostas condicionais foi ativada.

  3. Clique em Aplicar.

    Mostra que agora a resposta existente faz parte de uma tabela de respostas.

  4. Clique em ** Incluir resposta **.

  5. No campo Se o assistente reconhecer, digite $username e, no campo Responder com, inclua uma nova resposta:

    Good day to you, $username!
    
  6. Clique na seta para cima para a resposta número dois para movê-la para que ela seja listada antes da resposta número um (Good day to you!).

    Mostra que agora a resposta existente faz parte de uma tabela de respostas.

  7. Clique em Fechar para fechar a visualização de edição.

Testar a personalização

Teste a capacidade de seu assistente de reconhecer e salvar o nome de um usuário e, posteriormente, referenciar o usuário com ele.

  1. Clique no ícone Experimentar para abrir o painel "Experimentar".

  2. Clique em Limpar para reiniciar a sessão de conversa.

  3. Insira Who are you?

    Seu assistente reconhece a intenção #General_About_You. Sua resposta termina com a pergunta, What should I call you?

  4. Insira, Jane.

    Seu assistente salva Jane na variável $username.

  5. Insira Hello.

    O assistente reconhece a intenção #General_Greetings e diz Good day to you, Jane!. Ele usa a resposta condicional que inclui o nome do usuário, pois a variável de contexto $username contém um valor no momento em que o nó de saudação é incluído.

É possível incluir uma resposta condicional que condiciona e inclui o nome do usuário para quaisquer outras respostas em que a personalização incluiria um valor na conversa.

Teste o assistente por meio da integração de página web

Agora que você construiu uma versão mais sofisticada do assistente, retorne para a página da web pública implementada como parte do tutorial anterior e, em seguida, teste os novos recursos incluídos.

  1. Abra o assistente.

  2. Clique em Visualizar.

  3. Copie e cole a URL de Compartilhar este link em um navegador da web.

    Uma página com a marca da IBM é exibida com o assistente integrado como uma janela de bate-papo.

  4. Repita algumas das elocuções de teste enviadas à área de janela "Experimentar" para ver como o assistente se comporta em uma integração real.

    Ao contrário de quando você envia elocuções de teste ao seu assistente na área de janela "Experimentar", encargos de uso padrão se aplicam a chamadas de API resultantes de elocuções enviadas ao widget de bate-papo.

Próximas etapas

Agora que você construiu e testou sua qualificação de diálogo, é possível compartilhá-la com os clientes. Implemente sua qualificação conectando-a primeiramente a um assistente e, em seguida, implementando o assistente. Há várias maneiras de fazer isso. Consulte Incluindo Integrações para obter mais detalhes.