Criar e personalizar um agente

No Dialogflow, um agente recém-criado vem com dois intents padrão: o de boas-vindas e o de fallback. As primeiras etapas da criação de um agente, além de criar novos intents, envolvem a personalização desses intents para corresponder ao objetivo e à personalidade do seu agente.

Antes de começar

Antes de tentar este tutorial, você precisa estar familiarizado com os conceitos básicos do Dialogflow abordados nos guias de início rápido.

Criar um agente

Use o console do Dialogflow ES para criar um agente chamado "MarysBikeShop". Se não tiver certeza de como fazer isso, acesse novamente os guias de início rápido.

Personalizar o intent de boas-vindas padrão

Vamos começar personalizando a resposta do intent de boas-vindas padrão de acordo com as práticas recomendadas de design de conversa do Google. A prática recomendada sugere que você atinja três objetivos principais com sua saudação: receba bem o usuário, defina expectativas e deixe o usuário assumir o controle.

Com base nessa prática recomendada, podemos compor a saudação do nosso agente:

Olá. Posso dizer o horário de funcionamento da loja ou marcar um atendimento. Qual você quer?

Para atualizar a resposta do intent de boas-vindas padrão, siga estas etapas:

  1. Clique no intent de boas-vindas padrão.
  2. Navegue até a seção Respostas.
  3. Na tabela Resposta de texto, exclua todas as respostas padrão.
  4. Na tabela Text response, copie e cole a seguinte resposta:

    Welcome. I can tell you the shop hours, or I can set up an appointment. Which would you like?

  5. Clique em SAVE.

  6. Teste a atualização usando o simulador no console do Dialogflow.

    Figura 2. Fluxograma mostrando o intent de boas-vindas com a expressão e a resposta correspondidas.

Criar variantes de resposta

Depois de compor uma nova frase de saudação, precisamos criar outras variações. Inclua as seguintes variações como respostas no intent de boas-vindas padrão:

  • Welcome. I can tell you the shop hours, or I can make an appointment. What can I do for you?
  • Hello there. I can tell you the shop hours, or I can schedule an appointment. How may I help you today?

Quando fornecemos várias respostas para um intent, o Dialogflow seleciona aleatoriamente uma variante de resposta da lista. No entanto, lembre-se de que há maneiras mais sofisticadas de lidar com variações nas respostas quando começamos a escrever código para atendimento de pedidos, o que permite que um intent empregue uma lógica complexa. O componente de fulfillment do Dialogflow é mostrado em seções posteriores.

Em nossas variantes de resposta, as frases de saudação terminam com uma pergunta, como "Qual você quer? " e "O que posso fazer por você?" Nesse momento, o agente espera uma declaração do usuário, e a mensagem precisa revelar o que o usuário quer do agente. Na próxima seção, criamos a primeira intent personalizada do agente que pode identificar e resolver a solicitação de um usuário.

Criar um intent personalizado

Queremos que o agente da loja de bicicletas realize duas tarefas:

  • Informar os clientes sobre o horário de funcionamento
  • Agendar atendimentos para clientes

Vamos primeiro criar um intent que possa informar os usuários sobre o horário de funcionamento da bicicletaria. Podemos começar escrevendo uma amostra de diálogo para essa intent:

      Usuário: "Quando vocês estão abertos?"

      Agente: "Estamos abertos das 9h às 18h todos os dias." Há mais alguma coisa que eu possa fazer por você?

Para criar um intent que possa processar esse diálogo, siga estas etapas:

  1. Crie uma nova intent chamada Hours.
  2. Na seção Frases de treinamento da intent Horários, inclua a seguinte frase de treinamento: When are you open?
  3. Na seção Respostas, digite a seguinte resposta na tabela Resposta de texto: We're open from 9 AM to 6 PM every day. Is there anything else I can do for you?
  4. Clique em SALVAR.

    Figura 3. Fluxograma com intent de boas-vindas padrão e o novo intent personalizado, Hours.

Com a configuração acima, temos um intent básico que funciona. Quando um usuário faz a pergunta " Quando você está aberto? ", o Dialogflow corresponde o enunciado do usuário com a intent personalizada Horário. A intent, então, responde com a frase "Estamos abertos das 9h às 18h todos os dias. Há mais alguma coisa que eu possa fazer por você?"

Adicionar mais frases de treinamento

Como a intent Horário atualmente tem apenas uma frase de treinamento, "Quando você está aberto?", ela não tem o conhecimento necessário para identificar outras declarações semelhantes que tenham o mesmo significado. Precisamos fornecer mais frases de treinamento para que o agente possa corresponder a uma variedade de expressões do usuário que indiquem a mesma intenção.

Em linguagem natural, quase sempre temos maneiras diferentes de formar frases que significam a mesma coisa. Recomendamos que cada intent inicie com pelo menos 10 a 20 frases de treinamento (dependendo da complexidade). Ao iniciar o teste do agente, continue adicionando mais frases de treinamento usando a ferramenta de treinamento do Dialogflow.

Com a frase "Quando você está aberto?", podemos sugerir estas 10 variações que os usuários podem dizer:

  • Are you open today?
  • How late are you open on weekends?
  • When do you close?
  • What time do you open tomorrow morning?
  • Are you open now?
  • Business hours.
  • How early can I drop in?
  • Tell me your opening hours.
  • What are your hours?
  • How late can I come in?

Para adicionar essas variações como frases de treinamento, siga estas etapas:

  1. Clique na intent Horário.
  2. Na seção Frases de treinamento, copie e cole cada frase acima.
  3. Clique em SALVAR.
  4. Teste o intent com várias expressões do usuário usando o simulador no console do Dialogflow.

Até agora, temos um agente que pode saudar e receber usuários, bem como identificar e resolver uma solicitação específica deles. No entanto, o que acontece quando os usuários dizem algo que não pode ser entendido pelo agente?

Na próxima seção, veremos um intent especial projetado para lidar com expressões sem correspondência: um intent de fallback.

Personalizar o intent de fallback

Um intent de fallback é um intent especial que é correspondido quando uma expressão do usuário não é correspondida com outros intents. Como a intent de boas-vindas padrão, uma intent de fallback genérica chamada intent de fallback padrão é incluída em todos os agentes.

Um intent de fallback pode solicitar que os usuários formem expressões em um formato que o agente possa entender. Para atualizar a resposta de intent de fallback padrão, siga estas etapas:

  1. Clique no intent de fallback padrão.
  2. Navegue até a seção Respostas.
  3. Na tabela Resposta de texto, exclua todas as respostas padrão.
  4. Na tabela Resposta de texto, copie e cole a seguinte resposta:

    Sorry, did you want to hear our hours, or set up an appointment?

  5. Clique em SAVE.

    Figura 4 Fluxograma com o intent de fallback no canto superior esquerdo.

A pergunta na resposta de fallback, "Você quer saber quando estamos abertos ou marcar um horário?", leva o usuário a fazer um enunciado que o agente entenda. Ele espera que o usuário responda com um dos seguintes enunciados: "Quero saber quando estão abertos" ou "Quero marcar um horário".

Nosso agente não tem uma intent que possa lidar com a expressão que eu gostaria de marcar uma consulta. Na seção a seguir, criaremos uma intent avançada que poderá resolver a solicitação de agendamento.