Como criar as intents do fluxo de sequência

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:

  1. Uma intent principal "Sequência"
    • 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.
  2. 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.
  3. Uma intent contextual "Sequência: concluída"
    • 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:

  1. Deixe os contextos de entrada vazios para que os usuários finais possam acionar essa intent no início da chamada.
  2. 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.
  3. 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.
  4. Adicione um evento "continuar-sequência" para que seu webhook possa repetir essa intent para coletar todas as sequências parciais.

  5. 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.

  6. 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.

  7. 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".

  8. 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.

  9. 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.

  10. 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:

  1. 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".
  2. 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.
  3. Adicione frases de treinamento como "não", "Não está certo" etc.

  4. 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.

  5. 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.

  6. Ativa a chamada do webhook para essa intent.

Crie uma intent "Sequência - Concluído".

  1. Adicionar um contexto de entrada "collecting-sequence"
  2. 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.
  3. Adicione frases de treinamento como "pronto", "tudo pronto" etc.

  4. Adicione um parâmetro "sequence" com o valor "#collecting-sequence.existing_sequence" para extrair a sequência final do contexto.

  5. 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.