Agora que você tem sua entidade de sequência, crie as intents para coletar a sequência do usuário final. Você precisará de pelo menos três intents com estas responsabilidades:
- Uma "sequência" da intent principal
- Captura as falas para iniciar a coleta da sequência.
- Invocada por eventos de acompanhamento para continuar a capturar sequências até que o usuário final saiba que está tudo pronto.
- Uma intent contextual "Sequência: Editar"
- Captura declarações para corrigir a última sequência coletada.
- Faz um loop programático na intent "Sequência" para coletar a sequência corrigida.
- Uma intent contextual "Sequência: Concluído"
- Captura declarações que indicam que a sequência foi concluída.
Na próxima seção, você verá como o webhook conectará todos eles, mas primeiro vamos configurar as intents.
Criar a intent "Sequência"
Esta é a principal intenção para coletar sequências. Configure-a da seguinte maneira:
- Deixe os contextos de entrada vazios para que os usuários finais possam acionar essa intent no início da chamada.
- Adicione um contexto de saída "coletando-sequência". Usaremos esse contexto para ativar as intents de correção e finalização durante o fluxo.
- Adicione um contexto de saída "editando-sequência" e defina a vida útil como 0. Esse contexto será ativado com uma duração da intent "Sequência - Editar" na próxima seção e é importante limpar esse contexto aqui para que o contexto "editando-sequência" seja apenas quando a intent "Editar" é ativada imediatamente.
Adicione um evento "continuar-sequência" para que seu webhook possa repetir essa intent para coletar todas as sequências parciais.
Adicionar frases de treinamento para que o usuário final acione a intent para iniciar o fluxo. Nesse exemplo, são usadas frases como "qual é o status do meu pedido", "rastrear minha ordem", "onde está o meu pedido" etc.
Adicione um nome de ação "processar-sequência" para que o webhook saiba quando disparar. Você codificará o webhook na próxima seção deste tutorial, depois que todos os intents estiverem configurados.
Adicione um parâmetro obrigatório "nova_sequência" usando a entidade regexp que você criou para coletar sequências parciais na seção anterior. Defina o tipo de entidade como "@alphanumeric" e o valor como "$new_sequence".
Adicione um parâmetro opcional "existing_sequence" com o valor "#continue-sequence.existing_sequence" para extrair a nova sequência existente do evento. Você pode deixar o tipo de entidade vazio.
Adicione um parâmetro opcional "previous_sequence" com o valor "#continue-sequence.previous_sequence" para extrair a sequência anterior do evento. Você pode deixar o tipo de entidade vazio.
Ativa a chamada do webhook para este intent e chamada de webhook para preenchimento de slot.
Criar a intent "Sequência - Editar"
Essa intent detecta declarações que indicam que a sequência anterior foi destruída pelo agente. Configure-a da seguinte maneira:
- Adicione um contexto de entrada "collecting-sequence" para que essa intent seja chamado apenas quando estivermos no meio do fluxo de sequência. Esse é o mesmo contexto ativado pela intent "Sequência".
- Adiciona um contexto de saída "edit-sequence" ao nosso webhook de fulfillment para referência. Quando essa intent é ativada, o webhook retorna o Dialogflow de volta à intent "Sequência" principal para coletar a próxima sequência. O webhook para o preenchimento de slot da intent "Sequência" verifica um contexto "edit-sequence" ativo para fornecer uma resposta simbólica "try nova" ao usuário final.
Adicione frases de treinamento como "não", "Não está certo" etc.
Adicione o nome da ação "handle-sequence". Essa é a mesma ação que a intent "Sequência" para reutilizar a mesma lógica do webhook.
Adicione um parâmetro "new_sequence" com o valor "#collecting-sequence.previous_sequence" para extrair a sequência anterior do contexto, efetivamente desfazendo a última expressão. Não adicionamos um parâmetro "existing_sequence" aqui para que o webhook substitua a sequência existente pela anterior.
Ativa a chamada do webhook para essa intent.
Crie uma intent "Sequência - Concluído".
- Adicionar um contexto de entrada "collecting-sequence"
- Adicione um contexto de saída "collecting-sequence" e defina a vida útil como 0 para limpar o contexto. A limpeza impede que as intents "Editar" e "Concluído" sejam acionados novamente agora que o agente terminou de coletar a sequência.
Adicione frases de treinamento como "pronto", "tudo pronto" etc.
Adicione um parâmetro "sequence" com o valor "#collecting-sequence.existing_sequence" para extrair a sequência final do contexto.
Ativa a chamada do webhook para essa intent.
Vincular intents por webhook
Agora você tem tudo o que precisa para codificar a lógica dessas intents. Na próxima seção, você verá como codificar o webhook para usar todos esses contextos, ações, parâmetros e eventos e concluir o fluxo de validação da sequência.