Criar um agente usando fluxos

Este guia mostra como usar o console do Dialogflow CX para criar e testar um agente simples de pedidos de camisetas usando fluxos. Ao interagir com esse agente, é possível ver o local da loja, o horário de funcionamento ou fazer um pedido de camiseta.

Ao concluir o agente deste guia, o console o representará graficamente da seguinte maneira:

Captura de tela da representação do agente

Antes de começar

Faça o seguinte antes de ler este guia:

  1. Leia os conceitos básicos sobre fluxo.
  2. Execute as etapas de configuração.

Criar um agente

Crie um novo agente para este guia:

  1. Abra o Console do Dialogflow CX.
  2. Criar ou escolher um projeto
  3. Clique em Criar agente.
  4. Selecione Criar sua própria.
  5. Preencha o formulário para as configurações básicas do agente.
    1. Você pode escolher qualquer nome de exibição.
    2. Selecione um local. Clique no botão Editar se quiser alterar as configurações avançadas de local.
    3. Selecione o fuso horário.
    4. Selecione o idioma padrão do agente.
    5. Se quiser, ative o Stackdriver Logging.
  6. Clique em Save.

Importação opcional de agente

Neste guia, você conhecerá as etapas para criar um agente simples de pedidos de camisas. Se você quiser 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 Manage e em Intents. Para encontrar o fluxo, clique em Criar.

Termo Definição
Intent de boas-vindas padrão A intent de boas-vindas padrão tem frases de treinamento simples, como "Hi", ou "Hello", que correspondem à entrada inicial do usuário. É possível editar essa intent como quiser.
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 na entrada de texto e pressione "Enter".
  3. O agente responde com uma resposta de boas-vindas padrão.
  4. Feche o simulador.

Captura de tela do simulador

As seguintes etapas foram realizadas pelo agente para essa entrada do usuário final:

  1. Quando você forneceu a entrada, o Fluxo inicial padrão era o fluxo ativo e a página inicial do fluxo era a página ativa. Cada um dos manipuladores de estado aplicados ao fluxo ativo estava no escopo, portanto, o agente os avaliou.
  2. Uma das rotas avaliadas tem a intent de boas-vindas padrão como um requisito de intent. A entrada correspondeu a essa intent. Portanto, a rota foi chamada.
  3. A rota chamada tem várias mensagens de resposta de conclusão. O agente escolheu uma delas aleatoriamente e a adicionou à fila de respostas.
  4. A rota chamada não tem destino de transição. Portanto, o fluxo e a página ativos não foram alterados.
  5. O agente respondeu com o conteúdo da fila de respostas.

Editar a mensagem de resposta de boas-vindas

É possível mudar a mensagem 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ó Iniciar no gráfico. Esta é a página inicial do Fluxo de início padrão.
  4. Encontre a rota de intent com a intent de boas-vindas padrão como um requisito de intent e clique nela. Isso abre um painel para editar as informações do trajeto de intent.
  5. Encontre a seção de fulfillment, exclua todas as mensagens de resposta e adicione Hello, this is a shirt ordering virtual agent. How can I help you? como a única resposta.
  6. Clique em Save.
  7. Feche o painel de edição da rota de intent.

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 na entrada de texto e pressione "Enter".
  3. O agente responde com a nova mensagem.
  4. Feche o simulador.

Página "Local da loja"

Uma conversa (sessão) de agentes de conversação (Dialogflow CX) 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. Até agora, você tem apenas uma página, então o agente não é muito útil. Nesta seção, você criará outra página que processa perguntas sobre o local da loja.

Criar a intent de local

Uma intent categoriza a intenção do usuário final em uma conversa. Para criar um intent que é correspondido 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"

Agora, criaremos a nova página. Adicione um fulfillment de entrada à página que será chamada sempre que a página se torne 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 de adição 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 de opções ao lado do nome de exibição da página.
  6. Selecione Edit para abrir o painel de edição de página.
  7. Encontre Fulfillment de entrada e clique em Editar fulfillment.
  8. Digite Our store is located at 1007 Mountain Drive, Gotham City, NJ. no campo Fala do agente.
  9. Clique em Save.
  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 você precisa criar uma rota que tenha a página do local da loja como um destino de transição. Quando essa rota é chamada, a sessão faz a transição para a página do local da loja. Essa rota é aplicada ao Fluxo inicial padrão. Portanto, está no escopo, desde que o fluxo esteja ativo. Para um agente de fluxo único, isso significa que a rota está sempre no escopo. A qualquer momento da conversa, o usuário final pode solicitar o local da loja, e essa rota será chamada.

Para criar essa rota:

  1. Clique na guia Criar.
  2. Selecione o Fluxo inicial padrão na seção Fluxos.
  3. Clique no nó Iniciar no gráfico. Esta é a página inicial do Fluxo de início 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

Ao fechar o painel de edição, você verá que a nova página tem um nó no gráfico. A seta do nó Start para o nó do Localizador de lojas indica como a sessão pode passar de um nó para outro nó.

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 "Enter".
  3. O agente fornece o endereço
  4. Feche o simulador.

As etapas a seguir foram tomadas pelo agente para corresponder à entrada do usuário final:

  1. Quando você forneceu a entrada, o Fluxo inicial padrão era o fluxo ativo e a página inicial do fluxo era a página ativa. Cada um dos manipuladores de estado aplicados ao fluxo ativo estava no escopo, portanto, o agente os avaliou.
  2. Uma das rotas avaliadas tem store.location como um requisito de intent. A entrada correspondeu a essa intent. Portanto, a rota foi chamada.
  3. A rota chamada não tem mensagens de resposta de fulfillment. Portanto, nada foi adicionado à fila de respostas.
  4. A rota chamada tem um destino de transição, portanto, a página ativa foi alterada para a página Local da loja.
  5. A página Local da loja tem um preenchimento de entrada. Portanto, a mensagem de resposta do preenchimento foi adicionada à fila de resposta (o endereço).
  6. O agente respondeu com o conteúdo da fila de respostas.

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

Nesta seção, você cria uma página de Store Hours que lida com perguntas do usuário final sobre o horário de funcionamento. Nas seções anteriores, você criou páginas e intents nas guias Build e Manage. Nesta seção, você verá uma maneira mais rápida de criar esses tipos com a criação inline.

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

  1. Clique no nó Iniciar no gráfico.
  2. Clique no botão Intent route e adicione o botão . 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 será 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 Save para salvar a intent. O painel de edição de intents será fechado.

  6. Role para baixo até a seção Transition no painel de edição da rota de intent.

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

  8. Digite Store Hours na entrada de texto.

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

  10. Feche o painel de edição da rota de intent.

  11. Adicione um fulfillment de entrada que forneça o horário de funcionamento da loja, semelhante às etapas seguidas em Store Location.

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

Página de itens do pedido

Em seguida, você cria uma página que usa parâmetros de formulário. Quando o usuário final solicitar um novo pedido de camisa, a sessão passa para essa página. Quando ativa, essa página coleta um tamanho e uma cor para o pedido de camisa.

Criar um tipo de entidade personalizado para o tamanho da camisa

Os tipos de entidade são usados para controlar como os dados da entrada do usuário final são extraídos. Os agentes de conversação (Dialogflow CX) fornecem entidades predefinidas do sistema que podem corresponder a muitos tipos comuns de dados. Por exemplo, há entidades do sistema que correspondem a datas, horários, cores, endereços de e-mail e assim por diante. Também é possível criar entidades personalizadas para corresponder a 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 essa entidade, siga estas etapas:

  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 acima.
  6. Clique em Save.

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 e/ou o tamanho da camisa fornecidos pelo usuário final, caso ele forneça essa informação antecipadamente.

Parâmetros são usados para capturar e referir-se a 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 facilmente 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, os agentes de conversação (Dialogflow CX) reconhecem que essas partes são apenas exemplos de valores reais que serão 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?", Os agentes de conversação (Dialogflow CX) extrairiam o parâmetro date de "Sexta-feira" e o parâmetro location de "Sydney".

Para anotar uma frase de treinamento com o console:

  1. Selecione a parte da frase de treinamento que você quer anotar.
  2. Selecione o tipo de entidade desejado na lista.
  3. Um parâmetro é criado para você na tabela de parâmetros abaixo.

Crie uma intent semelhante às etapas seguidas acima. Nomeie esse intent como order.new. 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. Para cada frase que conté, um tamanho de camisa, anote o tamanho com um parâmetro size e o tipo de entidade personalizada @size criado nas etapas anteriores. 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 a nova página de pedidos seguindo as etapas semelhantes às anteriores:

  • 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 conhecidos como 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 com nome semelhante. 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.

Para a página do novo pedido, você precisa definir dois parâmetros de formulário obrigatórios:

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 Parameters para adicionar um botão . O painel de edição de parâmetros é aberto.
  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

Semelhante às etapas anteriores acima, adicione uma rota ao Fluxo inicial padrão. Essa rota deve ser chamada 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 confirmará apenas o pedido e terminará 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

Também é possível usar condições para determinar se uma rota é chamada. Geralmente, as condições são usadas 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, marque Definir condições na documentação do Google Cloud.

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

  • Condição: $page.params.status = "FINAL"
  • Fala 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, que será chamada para cada fala na conversa em que a página for ativa e a rota de condição for 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
  • Fala 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 Confirmar pedido para encerrar a sessão assim que a página se tornar ativa e o fulfillment de entrada for processado:

  • Condição: true
  • Destino da transição: Página: 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.

Produção

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