Criar as intenções do fluxo de sequência

Agora que tem a entidade de sequência, pode criar as intenções para recolher a sequência do utilizador final. Recomendamos que tenha, pelo menos, três intenções com as seguintes responsabilidades:

  1. Um objetivo principal "Sequência"
    • Captura as expressões para iniciar a recolha de expressões.
    • Invocado por eventos de seguimento para continuar a capturar sequências até o utilizador final dizer que terminou.
  2. Uma intenção contextual "Sequence - Edit"
    • Captura expressões para corrigir a última sequência recolhida.
    • Regressa programaticamente à intenção "Sequência" para recolher a sequência corrigida.
  3. Uma intenção contextual "Sequence - Done"
    • Captura expressões que indicam que a sequência está concluída.

Na secção seguinte, vai ver como o webhook vai ligar tudo isto, mas primeiro vamos configurar as intenções.

Crie a intenção "Sequência"

Este é o principal objetivo da recolha de sequências. Configure-o da seguinte forma:

  1. Deixe os contextos de entrada vazios para que os utilizadores finais possam acionar este objetivo no início da chamada.
  2. Adicione um contexto de saída "collecting-sequence". Vamos usar este contexto para ativar as intenções de correção e conclusão durante o fluxo.
  3. Adicione um contexto de saída "editing-sequence" e defina a duração como 0. Vamos ativar este contexto com um período de validade da intenção "Sequence - Edit" na secção seguinte, e é importante limpar esse contexto aqui para que o contexto "editing-sequence" só esteja ativo imediatamente após acionar a intenção "Edit".
  4. Adicione um evento "continue-sequence" para que o webhook possa repetir este objetivo de recolher todas as sequências parciais.

  5. Adicione expressões de treino para que o utilizador final possa acionar esta intenção para iniciar o fluxo. Este exemplo usa expressões como "qual é o estado da minha encomenda", "acompanhar a minha encomenda", "onde está a minha encomenda", etc.

  6. Adicione um nome de ação "handle-sequence" para que o webhook saiba quando deve ser acionado. Vai programar o webhook na secção seguinte deste tutorial, depois de configurar todos os intents.

  7. Adicione um parâmetro obrigatório "new_sequence" usando a entidade regexp que criou para recolher sequências parciais na secçã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. 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. Pode deixar o tipo de entidade vazio.

  10. Ative a chamada de webhook para este objetivo e a chamada de webhook para o preenchimento de espaços.

Crie a intenção "Sequence - Edit"

Esta intenção ouve expressões que indicam que o agente não ouviu bem a sequência anterior. Configure-o da seguinte forma:

  1. Adicione um contexto de entrada "collecting-sequence" para que este objetivo só seja chamado quando estivermos no meio do fluxo da sequência. Este é o mesmo contexto ativado pela intenção "Sequência".
  2. Adicione um contexto de saída "editing-sequence" para a nossa webhook de processamento de pedidos para referência. Quando esta intenção é ativada, o webhook envia o Dialogflow de volta à intenção "Sequência" principal para recolher a sequência seguinte. O webhook do preenchimento de espaços da intenção "Sequence" vai verificar se existe um contexto "editing-sequence" ativo para dar uma resposta de "tentar novamente" ao utilizador final.
  3. Adicione expressões de treino como "não", "isso não está certo", etc.

  4. Adicione o nome da ação "handle-sequence". Esta é a mesma ação que a intenção "Sequence", pelo que podemos reutilizar a mesma lógica de webhook.

  5. Adicione um parâmetro "new_sequence" com o valor "#collecting-sequence.previous_sequence" para extrair a sequência anterior do contexto, anulando efetivamente 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. Ative a chamada de webhook para este objetivo.

Crie uma intenção "Sequência – Concluído".

  1. Adicione um contexto de entrada "collecting-sequence"
  2. Adicione um contexto de saída "collecting-sequence" e defina o tempo de vida como 0 para limpar o contexto. Se a limpar, impede que as intenções "Editar" e "Concluído" sejam acionadas novamente agora que o agente concluiu a recolha da sequência.
  3. Adicione expressões de treino como "é isso", "tudo feito", etc.

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

  5. Ative a chamada de webhook para este objetivo.

Associe as intenções através do webhook

Agora, tem tudo o que precisa para programar a lógica destas intenções. Na secção seguinte, vai ver como programar o webhook para usar todos estes contextos, ações, parâmetros e eventos para concluir o fluxo de validação da sequência.