Links

Pedir informações do usuário por meio de validação de entrada

Agora você construiu a versão básica do bot Choo Choo, ótimo! O próximo passo é trabalhar com validação de entrada. Frequentemente, o bot pode obter informações de expressões.
Para completar nosso bot Choo Choo, precisamos pedir as seguintes informações ao usuário:
  1. 1.
    Origem
  2. 2.
    Destino
  3. 3.
    Data de partida
  4. 4.
    Hora de partida
  5. 5.
    Classe
Isso funciona muito bem quando o usuário diz, por exemplo:
  • Amanhã, preciso ir de Amsterdã a Bruxelas às 14h na segunda classe
Mas, agora, nosso bot só pode detectar essas informações quando o usuário fornece todas essas informações em uma única frase. É claro que, em muitos casos, esse não será o caso, portanto, precisamos pedir essa informação ao usuário. A caixa de diálogo para solicitar essas informações é chamada de caixa de diálogo Validação de Entrada.

Etapa 15: trabalhar com validação de entrada

Até agora, trabalhamos apenas com o tipo de diálogo do bot Mensagem do Bot. Um dos outros quatro tipos de diálogo de bot é a Validação de entrada. Com uma validação de entrada, você pode pedir informações especificamente a um usuário e salvar a resposta diretamente em uma variável. Vamos começar com a origem e o destino.
Entrada de texto
Vamos criar novas validações de entrada. Isso pode ser feito na visão geral do fluxo principal com o botão verde +Validação de entrada, mas também pode ser criado diretamente em outra caixa de diálogo do bot.
  • Abra a caixa de diálogo do bot para reservar bilhete de trem
  • Altere o texto da mensagem do bot aqui para: 'Eu tenho um pedido de uma passagem de trem'.
  • Na aba Mensagem do Bot, role para baixo até Ir para
  • Insira o destino no campo Ir para para e clique em Criar Validação de Entrada 'destino'
Em cada caixa de diálogo do bot, há uma opção Ir para. Isso significa que o fluxo da conversa irá automaticamente para a próxima caixa de diálogo do bot se a atual for concluída ou se essa entrada específica for fornecida. Com a configuração atual, o bot irá automaticamente para a validação de entrada se a primeira mensagem do bot para o intent Reservar bilhete de trem for concluída.
  • Salvar a caixa de diálogo do Reservar bilhete de trem
Você pode ver que a caixa de diálogo recém-criada fica vermelha. Isso significa que ainda não foi concluída. Vamos terminar para que fique verde:
  • Abra a validação de entrada de destino recém-criada
  • Na guia Validação de Entrada, em 'Pergunta', adicione uma nova mensagem de texto "Para onde você deseja ir?"
  • Em 'Salvar entrada do usuário como 'painel, selecione Qualquer como o tipo de formato em 'Verificar se a resposta corresponde'.
A validação de entrada pode detectar automaticamente certos tipos de dados, como datas, endereços, números, horas, moedas, ... Isso converterá a resposta do usuário em um formato mais estruturado.
Neste exemplo, queremos apenas saber a cidade de destino, que pode assumir qualquer formato. Portanto, usaremos o tipo de entrada 'Qualquer', que aceitará qualquer valor como entrada válida.
Você pode encontrar mais informações sobre os tipos de analisador de plug-ins aqui.
  • Digite o destino como a variável. A entrada de cada usuário será salva com este nome de variável.
  • Digite Confirmar reserva no campo 'Ir para'. Como a caixa de diálogo do bot Confirmar reserva não existe, você tem a opção de criar uma nova. Escolha Criar Mensagem de Bot 'Confirmar reserva'
Graphical user interface, text, application, email Description automatically generated
O resultado final deve ser assim:

NLP e plugin de entrada

Você precisa ter certeza de que seus usuários não fiquem presos em um loop onde o bot fica pedindo que insiram uma entrada. É por isso que nos certificamos de que, se um intent for detectado na resposta ao plug-in de entrada, os usuários automaticamente deixam o plug-in de entrada e vão para a parte relevante da conversa.
Nosso bot Choo Choo ainda não tem um modelo de NLP maduro, o que aumenta a probabilidade de correspondências de intent falsas. Portanto, por enquanto, é melhor selecionar a caixa de seleção 'Desativar NLP' no plug-in de entrada.
Depois de criado, você verá o seguinte fluxo:
A relação principal-secundário entre nós de estado de diálogo é apenas uma representação visual, não tem significado funcional. Sempre vincule suas caixas de diálogo de bot usando Ir para

Uso da entrada do usuário em mensagens de texto

Como pode ser visto na imagem acima, a mensagem do bot é vermelha. Isso significa que ainda não foi concluída. Vamos concluí-la para que fique cinza (a cor de todas as mensagens do Bot). Todas as variáveis de sessão são armazenadas na sessão do usuário. Para acessar uma variável em qualquer texto exibido, você pode colocar o nome da variável entre chaves.
  • Abra a caixa de diálogo do bot de Confirmar reserva
  • Insira uma nova mensagem de texto Ok, você deseja ir para {destino}. Nós podemos fazer isso.
É hora de um teste!
Se você se esquecer de definir o 'Ir para' e testar o fluxo da conversa, o fluxo simplesmente será interrompido. A conversa só continuará se você definir corretamente o 'Ir para' para cada estado de diálogo.
Ótimo! Se você estiver recebendo uma mensagem com vazio na primeira mensagem do bot ('Então, eu tenho um pedido de uma passagem de trem '), certifique-se de ter alterado essa mensagem do bot de acordo com nossa configuração mais recente. Se o destino não for capturado corretamente, certifique-se de salvar a variável como 'destino' na validação de entrada e usar '{destino}' na mensagem do bot.

Etapa 16: Conclusão do fluxo de reserva com as validações de entrada restantes

Repita as etapas anteriores para as outras informações que deseja obter de seus usuários:
  • Origem: De onde você está saindo?
  • Hora de partida: A que horas você quer sair?
  • Data de partida: Em que dia você quer pegar o trem?
Isso significa que você precisa criar três Validações de Entrada extras, assim como a Validação de Entrada de destino. Você pode alterar a validação de entrada de destino atual para garantir que a origem seja solicitada em seguida:
Crie a Validação de Entrada. Salve a variável em 'origem' e escolha 'Verificar se a resposta corresponde a > qualquer'. Depois de criado, você verá o seguinte:
Diagram, text, letter Description automatically generated
Isso ocorre porque a mensagem do bot Confirmar reserva ainda tem o destino como principal. Não se preocupe, isso será corrigido mais tarde. Adicione 'De onde você está saindo?' como texto na validação de entrada e salve a entrada na variável 'origem'. Certifique-se de que a próxima Validação de Entrada após esta será a hora de partida.
  • Agora, crie as outras Validações de Entrada:
  • variável 'hora de partida', com o texto: 'A que horas você quer sair?'. Salve em 'Verificar se a resposta corresponde a > qualquer'. Vá para: data de partida. Desative o NLP.
  • variável 'data de partida', com o texto: 'Que dia você quer pegar o trem?'. Salve em 'Verificar se a resposta corresponde a > qualquer'. Vá para: confirmar reserva. Desative o NLP.
Certifique-se de que todas essas validações de entrada sigam um fluxo consecutivo e acabem na caixa de diálogo do bot Confirmar reserva:
  1. 1.
    Reservar passagem de trem
  2. 2.
    Destino
  3. 3.
    Origem
  4. 4.
    Hora de partida
  5. 5.
    Data de partida
  6. 6.
    Confirmar reserva
Você verá, assim que abrir a validação de entrada data de partida, que o ir para é confirmar a reserva, mas isso não aparece na visão geral do fluxo. Isso ocorre porque o principal da confirmação da reserva ainda é o destino. Você pode alterar isso abrindo confirmar reserva > guia Configurações > alterar principal para data de partida.
Isso significa que o resultado final será semelhante ao seguinte:
Se alguma das caixas de diálogo do bot estiver vermelha - verifique se a caixa de diálogo do bot está completa com um texto e salva na variável correta. Se você não tiver um fluxo consecutivo, verifique se todos os principais estão configurados corretamente e se os itens nos diálogos estão salvos corretamente.
Agora temos um ótimo fluxo de reservas de trens! Teste algumas vezes.
No emulador com a aba depurador você pode ver se as variáveis estão salvas corretamente. Nesta guia você pode ver todas as variáveis armazenadas naquela sessão específica. Se você rolar para baixo, verá algo assim:
Graphical user interface, text, application, chat or text message Description automatically generated
Este é um ótimo começo quando você precisa depurar. Aqui você pode ver se você cometeu um erro de digitação em uma determinada variável ou se a entrada do usuário está armazenada corretamente na variável.

Etapa 17: Combinação de entrada do usuário com botões

No tutorial acima, solicitamos a entrada do usuário enviando uma mensagem de texto. No entanto, em uma validação de entrada, também podemos solicitar a entrada do usuário por clique, mas também é possível usar botões, listas, carrosséis e outros componentes da IU para suportar a entrada do usuário como texto ou cliques.
Isso é particularmente útil e acessível quando há apenas algumas opções para escolher, conforme descrito aqui na Lista de Verificação do Chatbot do Projeto de Conversas.
Vamos usar botões para solicitar ao usuário a classe de trem de sua preferência.
  • Na validação de entrada da Data de partida, digite Classe no campo Ir para e crie uma nova validação de entrada
  • Em Pergunta, adicione botões
  • Digite a mensagem de texto: "Em qual classe você quer viajar?"
  • Adicione dois botões, escolha a opção Ir para, "Primeira classe" e "Segunda classe", ambos indo para a caixa de diálogo do bot Confirmar reserva
  • Em ambos os botões, adicione uma classe de variável e valor primeiro e segundo
  • Selecione o tipo de formato Qualquer, insira a classe como variável e vá para Confirmar reserva
É importante usar um nome de variável idêntico para a variável de entrada, a entidade NLP e a variável do botão.
Dependendo da entrada do usuário, diferentes ações serão executadas:
  1. 1.
    Se um usuário escreve uma expressão que contém uma entidade que corresponde à variável em uma validação de entrada, esta validação de entrada é ignorada. Desta forma, evitamos perguntar ao usuário coisas que ele já disse.
  • Por exemplo: quando o usuário diz que preciso de uma passagem de trem de primeira classe que pertence ao intent reservar bilhete de trem e inclui uma classe de entidade, a variável 'classe' é armazenada na sessão do usuário com um valor 'primeiro' e a validação de entrada 'classe 'é ignorado porque o valor da variável de entrada já está disponível na sessão do usuário.
  1. 1.
    Quando o usuário é solicitado a dar sua classe de trem preferida e ele diz 'primeiro', este valor será adicionado na variável de entrada 'classe' na sessão do usuário.
  2. 2.
    Quando o usuário clica no botão 'Primeira classe', o valor 'primeiro' será adicionado à variável 'classe' na sessão do usuário.
Isso dá muita liberdade ao usuário; não importa onde eles fornecem sua entrada (em uma validação de entrada, expressão ou botão), tudo é salvo na variável correta.
Experimente no emulador!

Etapa 18: Finalizando

Agora que você tem todas essas informações extras, é hora de mostrar ao usuário todos os dados que você reuniu nas validações de entrada:
  • Abra a caixa de diálogo do bot de Confirmar reserva
  • Substitua a mensagem de texto existente por "Tenho uma passagem de trem para você de {origem} para {destino} em {data de partida} às {hora de partida}h, na classe {classe}."
  • Mude o principal para a classe
Agora teste seu bot recém-criado para ver se funciona!
Se você tiver problemas,

Recapitulação da lição

Agora, você tem um bot com a seguinte configuração:
  • Um fluxo para reservar uma passagem de trem com 2 mensagens de bot e 5 validações de entrada
  • Um bot que reconhece ambas as variáveis fornecidas em expressões ou por meio de validações de entrada
  • Uma mensagem final do bot resumindo todas as variáveis fornecidas pelo usuário
Agora você deve estar familiarizado com:
  • Criar uma validação de entrada e armazenar a entrada do usuário em uma variável
  • Criar um botão e armazenar a entrada do clique do botão em uma variável
  • Vincular caixas de diálogo de bot entre si com a opção ir para em uma caixa de diálogo de bot e criando uma nova caixa de diálogo de bot com a opção ir para
  • Alterar o principal de uma caixa de diálogo de bot
  • Usar a guia do depurador para ver como a entrada do usuário é armazenada
No próximo tutorial, você aprenderá como conduzir a conversa em uma determinada direção com base em variáveis conhecidas.