Criar um agente usando fluxos

Este guia mostra como usar o console do Dialogflow CX para criar e testar um agente de pedidos de camisetas usando fluxos. Ao interagir com esse agente, peça a localização da loja, o horário de funcionamento ou compre uma camiseta.

O diagrama a seguir mostra o agente concluído deste guia:

Captura de tela da representação do agente

Antes de começar

Conclua as tarefas a seguir antes de ler este guia:

Criar um agente

Crie um agente para este guia:

  1. Abra o console do Dialogflow CX.
  2. Criar ou escolher um projeto
  3. Clique em Criar agente.
  4. Selecione Build your own.
  5. Preencha o formulário para as configurações básicas do agente.
    1. Insira um nome de exibição.
    2. Selecione um local. Clique no botão Editar se quiser mudar as configurações avançadas de local.
    3. Selecione um fuso horário.
    4. Selecione o idioma padrão.
    5. Como opção, ative o Cloud Logging.
  6. Clique em Salvar.

Importação opcional de agente

Neste guia, você vai conhecer as etapas para criar um agente de pedidos de camisas.

Para ignorar as etapas do console, faça o download do agente e importe-o.

Fluxo e intents padrões

O fluxo e as intents a seguir são criados automaticamente para um novo agente.

Para encontrar as intents, clique em Gerenciar e em Intents. Para encontrar o fluxo, clique em Criar.

X Item
Intent de boas-vindas padrão A intent de boas-vindas padrão tem frases de treinamento como "Oi" ou "Olá", que correspondem à entrada inicial do usuário. É possível editar essa intent conforme necessário.
Intent negativa padrão A intent negativa padrão pode ser usada para adicionar frases de treinamento ao intent que atuam como exemplos negativos.
Fluxo inicial padrão O fluxo inicial padrão pode ser usado como um fluxo único. É o fluxo que será usado neste guia. Para agentes mais complexos, é possível adicionar mais fluxos. Esse fluxo tem uma rota de intent padrão com o Intent de boas-vindas padrão como um requisito de intent.

Testar a mensagem de resposta de boas-vindas padrão

O fluxo e as intents padrão podem realizar uma conversa básica com apenas uma mensagem de boas-vindas.

Para testar o novo agente:

  1. Clique no botão Testar agente para abrir o simulador.
  2. Digite hello no campo de texto e pressione "Enter".
  3. O agente responde com uma mensagem de boas-vindas padrão.
  4. Feche o simulador.

Captura de tela do simulador

O agente realiza as seguintes etapas para essa entrada do usuário final:

  1. Quando você fornece uma entrada, o agente avalia os manipuladores de estado no escopo do Fluxo inicial padrão ativo e da página inicial do fluxo.
  2. O agente identifica e executa uma rota que corresponde à intent de boas-vindas padrão.
  3. O agente seleciona uma das mensagens de resposta de fulfillment aleatoriamente e a adiciona à fila de respostas.
  4. Como a rota não tem destino de transição, o fluxo e a página ativos permanecem inalterados.
  5. O agente envia o conteúdo da fila de respostas para você.

Editar a mensagem de resposta de boas-vindas

Para editar a mensagem de resposta de boas-vindas:

  1. Clique na guia Criar.
  2. Selecione o Fluxo inicial padrão na seção Fluxos.
  3. Clique no nó Página inicial no gráfico.
  4. Encontre a rota com a intent de boas-vindas padrão como um requisito de intent e clique nela para abrir o painel de edição de rotas.
  5. Na seção de fulfillment, na subseção de respostas do agente, exclua todas as mensagens de resposta atuais.
  6. Adicione Hello, this is a shirt ordering virtual agent. How can I help you? como a única resposta.
  7. Clique em Salvar.
  8. Feche o painel de edição de rotas.

Captura de tela da resposta do agente

Testar a mensagem de resposta de boas-vindas atualizada

Para testar a resposta atualizada:

  1. Clique no botão Testar agente para abrir o simulador.
  2. Digite hello no campo de texto e pressione "Enter".
  3. O agente responde com a nova mensagem.
  4. Feche o simulador.

Página "Local da loja"

Uma conversa do Dialogflow CX (sessão) pode ser descrita e visualizada como uma máquina de estado. Os estados de uma sessão do CX são representados por páginas. Como você tem apenas uma página, o agente não é muito útil. Nesta seção, crie outra página que processe perguntas sobre o local da loja.

Criar a intent de local

Uma intent categoriza a intenção do usuário final em cada conversa.

Para criar uma intent que é correspondida quando a entrada do usuário final solicita o local da loja:

  1. Selecione a guia Manage.
  2. Clique em Intents.
  3. Clique em Criar.
  4. Insira store.location para o nome de exibição da intent.
  5. Digite as seguintes frases de treinamento:
    • Where is the store?
    • Directions
    • Tell me the address
    • Where do I pick up my order?
    • How do I get there?
    • Where is the store located?
    • What street are you on?
    • What is your address?
    • How do I get to your store?
    • Where are you located?
  6. Clique em Save.

Captura de tela da intent

Criar a página "Local"

Crie uma nova página. Adicione um fulfillment de entrada à página que será executada sempre que ela se tornar ativa. Esse preenchimento de entrada deve ter uma mensagem de resposta que forneça o local da loja.

Para criar a página do local da loja:

  1. Clique na guia Criar.
  2. Selecione o Fluxo inicial padrão na seção Fluxos.
  3. Clique no botão add na seção Páginas. Uma entrada de texto para o nome de exibição da página aparece.
  4. Insira Store Location como o nome de exibição da página e pressione Enter.
  5. Clique no botão more_vert ao lado do nome de exibição da página.
  6. Selecione Edit para abrir o painel de edição de página.
  7. Localize Entry fulfillment e clique em Edit fulfillment.
  8. Clique em +Adicionar resposta de diálogo para inserir Our store is located at 1007 Mountain Drive, Gotham City, NJ. no campo Diálogo do agente da seção Respostas do agente.
  9. Clique em Salvar.
  10. Feche o painel de edição da página.

captura de tela da página

Adicionar uma rota de intent de local ao fluxo

Agora, crie uma rota que tenha a página "Local da loja" como um destino de transição. Quando essa rota é chamada, a sessão faz a transição para a página "Local da loja". Essa rota é aplicada ao Fluxo inicial padrão. Portanto, ela está no escopo enquanto o fluxo estiver ativo.

Para um agente de fluxo único, isso significa que a rota está sempre no escopo. A qualquer momento da conversa, um usuário final pode pedir o local da loja, e essa rota será chamada.

Para criar a rota:

  1. Clique na guia Criar.
  2. Selecione o Fluxo inicial padrão na seção Fluxos.
  3. Clique no nó Página inicial no gráfico. Esta é a página inicial do Fluxo inicial padrão.
  4. Adicione a rota de intent a seguir:
    • Intent: store.location
    • Página de transição:Store Location
  5. Clique em Save.
  6. Feche o painel de edição da rota de intent.

captura de tela da rota de intent

Depois que você fechar o painel de edição, um nó da nova página vai aparecer no gráfico. A seta do nó Start para o nó do Localizador de lojas mostra como a sessão faz a transição entre nós.

Testar a página do local da loja

Para testar a página do local da loja, faça o seguinte:

  1. Clique no botão Testar agente para abrir o simulador.
  2. Digite What is the store location? e pressione a tecla Enter.
  3. O agente fornece o endereço
  4. Feche o simulador.

O agente realiza as seguintes etapas para essa entrada do usuário final:

  1. Quando você fornece uma entrada, o agente avalia os manipuladores de estado no escopo do Fluxo inicial padrão ativo e da página inicial do fluxo.
  2. O agente identifica uma rota que corresponde à intent store.location e a executa.
  3. Como a rota não tem mensagens de resposta de fulfillment, o agente não adiciona nada à fila de respostas.
  4. O agente transfere a sessão para a página Local da loja.
  5. O agente adiciona a mensagem de resposta do preenchimento de entrada da página Local da loja à fila de respostas.
  6. O agente envia o conteúdo da fila de respostas para você.

Página de horário de funcionamento usando a criação inline

Nesta seção, você cria uma página de Horário de funcionamento que lida com perguntas do usuário final sobre o horário de funcionamento. Antes, você criou páginas e intents nas guias Build e Manage. Nesta seção, você vai aprender uma maneira mais rápida de criar esses componentes com a criação inline.

Para criar inline uma rota de intent, um intent e uma página:

  1. Clique no nó Página inicial no gráfico.
  2. Ao lado de Rotas, clique em Adicionar. O painel de edição da rota de intent é aberto.
  3. Na seção Intent, selecione New intent. O painel de edição de intents é aberto.
  4. Crie um intent store.hours com as seguintes frases de treinamento:

    • What are your store hours?
    • What time do you close?
  5. Clique em Salvar. O painel de edição de intents será fechado.

  6. Acesse a seção Transição no painel de edição de rotas.

  7. Para transição de Page, selecione New page.

  8. Digite Store Hours na entrada de texto.

  9. Clique em Salvar. A nova página aparece no gráfico porque agora há uma transição que leva a ela.

  10. Feche o painel de edição de rotas.

  11. Adicione um fulfillment de entrada que forneça o horário de funcionamento da loja, como você fez para Local da loja.

  12. Feche todos os painéis de edição.

Página de itens do pedido

Em seguida, crie uma página que use parâmetros de formulário. Quando você pede uma nova camisa, a sessão passa para essa página, que coleta o tamanho e a cor do pedido.

Criar um tipo de entidade personalizado para o tamanho da camisa

Os tipos de entidade controlam como os dados da entrada do usuário final são extraídos. O Dialogflow CX fornece entidades predefinidas do sistema que correspondem a tipos de dados comuns, como datas, horários, cores e endereços de e-mail. Também é possível criar entidades personalizadas para dados específicos.

Para esse agente, é possível usar uma entidade do sistema para a cor da camisa, mas você precisa criar uma entidade personalizada para o tamanho da camisa.

O tipo de entidade de tamanho precisa ter as seguintes entradas de entidade:

Entidade Sinônimos
Pequeno pequeno, muito pequeno, extra pequeno
Média médio, tamanho único, comum
Grande grande, muito grande, extra grande

Para criar a entidade:

  1. Selecione a guia Manage.
  2. Clique em Tipos de entidade.
  3. Clique em Criar.
  4. Defina o nome de exibição como size.
  5. Adicione as entradas de entidade listadas na tabela.
  6. Clique em Salvar.

Criar um intent de pedido com parâmetros de intent

Você precisa de uma intent que corresponda à solicitação de um novo pedido de camisa do usuário final. Essa intent também deve capturar opcionalmente a cor ou o tamanho da camisa escolhidos, caso o usuário final forneça essa informação inicialmente.

Parâmetros são usados para capturar e referenciar valores fornecidos pelo usuário final durante uma sessão. Cada parâmetro tem um nome de exibição e um tipo de entidade. Ao contrário da entrada bruta do usuário final, os parâmetros são dados estruturados que podem ser usados para executar uma lógica ou gerar respostas.

Controle como os dados do usuário final são extraídos com a correspondência de intent anotando partes das frases de treinamento e configurando os parâmetros de intent associados.

Por exemplo, considere uma frase de treinamento como "Qual é a previsão amanhã para Tóquio?" Anote "amanhã" com um parâmetro date e "Tóquio" com um parâmetro location. Quando você anota partes de uma frase de treinamento, o Dialogflow CX reconhece que essas partes são apenas exemplos de valores reais que podem ser fornecidos pelos usuários finais no ambiente de execução.

Para uma entrada de usuário final, como "Qual é a previsão para Sydney na sexta-feira?", O Dialogflow CX pode extrair o parâmetro date de "Sexta-feira" e o parâmetro location de "Sydney".

Para anotar uma frase de treinamento no console:

  1. Destaque a parte da frase de treinamento que você quer anotar.
  2. Selecione o tipo de entidade necessário na lista.
  3. O Dialogflow cria um parâmetro na tabela a seguir.

Crie uma intent chamada order.new seguindo estas etapas:

  1. Para cada frase que contém uma cor, anote a cor com um parâmetro color e o tipo de entidade do sistema @sys.color.
  2. Para cada frase que contém um tamanho de camisa, anote o tamanho com um parâmetro size e o tipo de entidade personalizada @size que você criou anteriormente.

As frases e os parâmetros de treinamento precisam ser semelhantes a estes:

Captura de tela da intent

Criar uma página de pedidos

Crie uma página de pedidos:

  • Nome de exibição: New Order
  • Fulfillment de entrada:Ok, let's start a new order.

Adicionar um formulário à página do pedido

Para cada página, é possível definir um formulário, que é uma lista de parâmetros que precisam ser coletados do usuário final para a página. O agente interage com o usuário final em várias rodadas de conversas até que ele tenha coletado todos os parâmetros de formulário obrigatórios, também chamados de parâmetros de página. Para cada parâmetro de formulário, você também fornece prompts que o agente usa para solicitar essas informações do usuário final. Esse processo é chamado de preenchimento de formulário.

Quando um usuário final fornece parâmetros de intent para uma correspondência de intent, os parâmetros de intent se tornam parâmetros de sessão. Quando uma página fica ativa, todos os parâmetros do formulário são preenchidos previamente com quaisquer parâmetros de sessão que tenham o mesmo nome. Portanto, se o usuário final fornecer o tamanho ou a cor quando a intent order.new for correspondida, esses valores serão preenchidos automaticamente no formulário.

Defina dois parâmetros de formulário obrigatórios para a página Novo pedido:

Obrigatório Nome de exibição Tipo de entidade É uma lista Prompt
cor @sys.color Qual cor você quer?
size @size Que tamanho você quer?

Para adicionar esse formulário, siga estas etapas:

  1. Clique na página New Order no gráfico.
  2. Clique no botão de adição Parâmetros para abrir o painel de edição de parâmetros.
  3. Adicione os parâmetros conforme descrito na tabela acima.
  4. Clique em Save.
  5. Feche o painel de edição de parâmetros.

Adicionar uma rota de intent de pedido ao fluxo

Adicione uma rota ao Fluxo inicial padrão que faça a transição para a página Novo pedido quando o usuário final quiser fazer um novo pedido:

  • Intent: order.new
  • Página de destino da transição: Novo pedido

Página de confirmação

A página final confirma o pedido e encerra a sessão.

Criar a página de confirmação

Crie uma página de confirmação com uma resposta que usa os parâmetros de sessão para confirmar a ordem:

  • Nome de exibição: Order Confirmation
  • Fulfillment de entrada: You can pick up your order for a $session.params.size, $session.params.color shirt in 7 to 10 business days. Goodbye.

Adicionar rotas de condição à página de pedido

É possível usar condições para determinar se uma rota é chamada. Geralmente, as condições são usadas com frequência para verificar se um formulário foi preenchido ou se estão configuradas para serem chamadas sempre que forem avaliadas.

Para definir condições no console, consulte a documentação Definir condições.

Adicione a seguinte rota à página de pedidos, que é chamada quando o formulário da página de pedidos é preenchido. Essa rota de condição usa referências de parâmetro na resposta ao usuário final e passa a sessão para a página de Confirmação de pedido.

  • Condição:$page.params.status = "FINAL"
  • Mensagem do agente:You have selected a $session.params.size, $session.params.color shirt.
  • Página de transição:Order Confirmation

Adicione a seguinte rota à página de pedidos. Essa rota é executada para cada fala na conversa enquanto a página está ativa e a rota de condição é avaliada. Quando a condição acima for avaliada e chamada, a página ficará inativa. Portanto, essa rota de condição true não será avaliada:

  • Condição:true
  • Mensagem do agente:I'd like to collect a bit more information from you.

Criar uma rota de condição para finalizar a sessão.

Adicione a seguinte rota de condição à página Confirmação do pedido para encerrar a sessão depois que a página se tornar ativa e o fulfillment de entrada for processado:

  • Condição:true
  • Página de destino da transição:End Session

Testar o agente concluído

Teste o agente com a seguinte caixa de diálogo:

Diálogo Explicação
Usuário final: Olá
Agente: Olá, este é um agente virtual de pedidos. Como posso ajudá-lo?
  1. A rota de intent de boas-vindas padrão no Fluxo inicial padrão é chamada.
  2. O fulfillment desse manipulador de estado ("Olá, este é um...") foi adicionado à fila de respostas.
  3. O agente envia a fila de resposta para o usuário final.
Usuário final: quero comprar uma camisa azul
Agente: Ok, vamos começar um novo pedido.
Agente: gostaria de coletar mais informações suas.
Agente: qual é o tamanho desejado?
  1. A rota de intent order.new no Fluxo inicial padrão é avaliada.
  2. A intent order.new é correspondida, e o parâmetro de intent color é definido como "azul".
  3. A sessão é transferida para a página Novo pedido, e o parâmetro de intent cor se torna um parâmetro de sessão.
  4. A página Novo pedido tem um preenchimento de entrada ("Ok, vamos começar...") que será adicionado à fila de resposta.
  5. O parâmetro de sessão color é usado para preencher o parâmetro do formulário de mesmo nome.
  6. A rota de condição verdadeira na página Novo pedido é avaliada e chamada. Ela contém uma mensagem de resposta ("Eu gostaria de coletar...") que será adicionada à fila de resposta.
  7. O formulário das páginas não foi preenchido. Portanto, o agente usa o prompt de tamanho ("Qual tamanho...") e o adiciona à fila de resposta.
  8. O agente envia a fila de resposta para o usuário final.
Usuário final: grande
Agente: você selecionou uma camisa grande azul.
Agente: você receberá o pedido de uma camisa azul grande de 7 a 10 dias úteis. Goodbye.
  1. A entrada do usuário final preenche o parâmetro tamanho solicitado pelo agente na fala anterior.
  2. A rota de preenchimento do formulário na página Novo pedido é avaliada e chamada. Ela tem um fulfillment ("Você selecionou...") adicionado à fila de respostas e com as referências de parâmetros resolvidas para valores reais fornecidos pelo usuário final.
  3. A sessão passa para a página de Confirmação do pedido.
  4. A página Confirmação do pedido tem um fulfillment de entrada ("Você receberá...") que é adicionado à fila de respostas.
  5. O agente envia a fila de resposta para o usuário final.
  6. A sessão transita para o estado Encerrar sessão.

Preparação para a produção

Antes de executar seu agente na produção, implemente as Práticas recomendadas para produção.