Crie um agente com fluxos

Este guia mostra como usar a consola Dialogflow CX para criar e testar um agente de encomenda de camisas simples através de fluxos. Quando interage com este agente, pode perguntar pela localização da loja, saber o horário de funcionamento da loja ou fazer uma encomenda de camisolas.

O agente concluído para este guia é representado graficamente pela consola da seguinte forma:

Captura de ecrã do gráfico do agente

Antes de começar

Antes de ler este guia, deve fazer o seguinte:

  1. Leia as noções básicas sobre fluxos.
  2. Realize os passos de configuração.

Crie um agente

Crie um novo agente para este guia:

  1. Abra a consola do Dialogflow CX.
  2. Crie ou escolha um projeto.
  3. Clique em Criar agente.
  4. Selecione Crie o seu.
  5. Preencha o formulário para as definições básicas do agente:
    1. Pode escolher qualquer nome a apresentar.
    2. Selecione a sua localização preferida. Clique no botão Editar se quiser alterar as definições de localização avançadas.
    3. Selecione o seu fuso horário preferido.
    4. Selecione o idioma predefinido do seu agente.
    5. Opcionalmente, ative o Stackdriver Logging.
  6. Clique em Guardar.

Importação de agentes opcional

Este guia explica os passos para criar um agente de encomenda de camisas simples. Se quiser ignorar os passos da consola, pode transferir o agente e importá-lo.

Fluxo e intenções predefinidos

O fluxo e as intenções seguintes são criados automaticamente para um novo agente. Pode encontrar as intenções clicando em Gerir e, de seguida, em Intenções. Pode encontrar o fluxo clicando em Criar.

Vigência Definição
Intenção de boas-vindas predefinida A Intenção de boas-vindas predefinida tem expressões de preparação simples, como "Olá", que se destinam a corresponder à entrada inicial do utilizador final. Pode editar esta intenção como quiser.
Intenção negativa predefinida A intenção negativa predefinida pode ser usada para adicionar expressões de treino a esta intenção que atuam como exemplos negativos.
Fluxo de início predefinido O fluxo de início predefinido pode ser usado como o seu único fluxo. É o único fluxo que vai ser usado neste guia. Para agentes mais complexos, pode adicionar mais fluxos. Este fluxo tem um percurso de intenção predefinido com a intenção de boas-vindas predefinida como requisito de intenção.

Teste a mensagem de resposta de boas-vindas predefinida

O fluxo e as intenções predefinidos podem processar uma conversa básica com apenas uma mensagem de boas-vindas. Para testar o novo agente:

  1. Clique no botão Agente de teste para abrir o simulador.
  2. Introduza hello na entrada de texto e prima Enter.
  3. O agente responde com uma resposta de boas-vindas predefinida.
  4. Feche o simulador.

Captura de ecrã do simulador

O agente realizou os seguintes passos para esta entrada do utilizador final:

  1. Quando forneceu informações, o fluxo de início predefinido era o fluxo ativo e a página de início do fluxo era a página ativa. Cada um dos controladores de estado aplicados ao fluxo ativo estava no âmbito, pelo que o agente os avaliou.
  2. Um dos trajetos avaliados tem o Default Welcome Intent como requisito de intenção. O texto introduzido correspondeu a esta intenção, pelo que a rota foi chamada.
  3. A rota chamada tem várias mensagens de resposta de processamento. O agente escolheu um aleatoriamente e adicionou-o à fila de respostas.
  4. A rota chamada não tem um destino de transição, pelo que o fluxo e a página ativos não foram alterados.
  5. O agente respondeu com o conteúdo da fila de respostas.

Edite a mensagem de resposta de boas-vindas

Pode alterar esta mensagem de boas-vindas. Para editar a mensagem de resposta de boas-vindas:

  1. Clique no separador Criar.
  2. Selecione o Fluxo de início predefinido na secção Fluxos.
  3. Clique no nó Página inicial no gráfico. Esta é a página inicial do fluxo de início predefinido.
  4. Encontre o caminho com o Default Welcome Intent como requisito de intenção e clique nele. Esta ação abre um painel para editar as informações do trajeto de intenção.
  5. Encontre a secção de processamento e, na subsecção de respostas do agente, elimine todas as mensagens de resposta e, em seguida, adicione Hello, this is a shirt ordering virtual agent. How can I help you? como a única resposta.
  6. Clique em Guardar.
  7. Feche o painel de edição de rotas.

Captura de ecrã da resposta do agente

Teste a mensagem de resposta de boas-vindas atualizada

Para testar a resposta atualizada:

  1. Clique no botão Agente de teste para abrir o simulador.
  2. Introduza hello na entrada de texto e prima Enter.
  3. O agente responde com a sua nova mensagem.
  4. Feche o simulador.

Página de localização da loja

Uma conversa (sessão) de agentes conversacionais (Dialogflow CX) pode ser descrita e visualizada como uma máquina de estados. Os estados de uma sessão do CX são representados por páginas. Até agora, só tem uma página, pelo que o agente não é muito útil. Nesta secção, cria outra página que processa perguntas sobre a localização da loja.

Crie a intenção de localização

Uma intenção categoriza a intenção de um utilizador final para uma interação de conversa. Para criar uma intenção que seja correspondida quando a entrada do utilizador final pede a localização da loja:

  1. Selecione o separador Gerir.
  2. Clique em Intenções.
  3. Clique em Criar.
  4. Introduza store.location para o nome a apresentar da intenção.
  5. Introduza as seguintes expressões de treino:
    • 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 Guardar.

captura de ecrã de intenção

Crie a página de estabelecimento

Agora, crie a nova página. Pode adicionar um preenchimento de entrada a esta página que é chamado sempre que a página fica ativa. Este preenchimento de entrada deve ter uma mensagem de resposta que indique a localização da loja. Para criar a página de localização da loja:

  1. Clique no separador Criar.
  2. Selecione o Fluxo de início predefinido na secção Fluxos.
  3. Clique no botão de adição na secção Páginas. É apresentada uma entrada de texto para o nome a apresentar da página.
  4. Introduza Store Location para o nome a apresentar da página e prima Enter.
  5. Clique no botão de opções junto ao nome a apresentar da página.
  6. Selecione Editar para abrir o painel de edição de páginas.
  7. Encontre Cumprimento da entrada e clique em Editar cumprimento.
  8. Clique em +Adicionar resposta de diálogo para introduzir Our store is located at 1007 Mountain Drive, Gotham City, NJ. no campo Diálogo do agente da secção Respostas do agente.
  9. Clique em Guardar.
  10. Feche o painel de edição de páginas.

captura de ecrã da página

Adicione um trajeto de intenção de localização ao fluxo

Agora, tem de criar um trajeto que tenha a página de localização da loja como destino de transição. Quando esta rota é chamada, a sessão passa para a página de localização da loja. Este trajeto é aplicado ao Fluxo de início predefinido, pelo que está no âmbito enquanto o fluxo estiver ativo. Para um agente de fluxo único, isto significa que a rota está sempre no âmbito. Em qualquer ponto da conversa, o utilizador final pode pedir a localização da loja, e esta rota é chamada.

Para criar este trajeto:

  1. Clique no separador Criar.
  2. Selecione o Fluxo de início predefinido na secção Fluxos.
  3. Clique no nó Página inicial no gráfico. Esta é a página inicial do fluxo de início predefinido.
  4. Adicione a seguinte rota de intenção:
    • Intenção: store.location
    • Página de transição: Store Location
  5. Clique em Guardar.
  6. Feche o painel de edição do trajeto de intenção.

captura de ecrã do trajeto de intenção

Quando fechar o painel de edição, repare que a nova página tem um nó no gráfico. A seta do nó Início para o nó Localização da loja indica como a sessão pode transitar de nó para nó.

Teste a página de localização da loja

Para testar a sua página:

  1. Clique no botão Agente de teste para abrir o simulador.
  2. Introduza What is the store location? e prima Enter.
  3. O agente indica a morada.
  4. Feche o simulador.

O agente realizou os seguintes passos para a entrada do utilizador final:

  1. Quando forneceu informações, o fluxo de início predefinido era o fluxo ativo e a página de início do fluxo era a página ativa. Cada um dos controladores de estado aplicados ao fluxo ativo estava no âmbito, pelo que o agente os avaliou.
  2. Um dos trajetos avaliados tem store.location como requisito de intenção. O texto introduzido correspondeu a esta intenção, pelo que a rota foi chamada.
  3. A rota chamada não tem mensagens de resposta de preenchimento, por isso, não adicionou nada à fila de respostas.
  4. A rota chamada tem um destino de transição, pelo que a página ativa mudou para a página Localização da loja.
  5. A página Localização da loja tem um preenchimento de entrada, pelo que a mensagem de resposta para o preenchimento foi adicionada à fila de respostas (a morada).
  6. O agente respondeu com o conteúdo da fila de respostas.

Página de horário da loja com criação inline

Nesta secção, cria uma página de Horário de funcionamento que processa as perguntas dos utilizadores finais sobre o horário de funcionamento. Nas secções anteriores, criou páginas e intenções nos separadores Criar e Gerir. Esta secção mostra uma forma mais rápida de criar estes tipos com a criação inline.

Para criar uma rota de intenção, uma intenção e uma página de forma inline:

  1. Clique no nó Página inicial no gráfico.
  2. Junto a Rotas, clique em Adicionar. É aberto o painel de edição do trajeto de intenção.
  3. Na secção Intenção, selecione Nova intenção. É aberto o painel de edição de intenções.
  4. Crie uma intenção store.hours com as seguintes expressões de treino:

    • What are your store hours?
    • What time do you close?
  5. Clique em Guardar para guardar a intenção. O painel de edição de intenções é fechado.

  6. Desloque a página para baixo até à secção Transição no painel de edição de rotas.

  7. Para a transição de Página, selecione Nova página.

  8. Introduza Store Hours na entrada de texto apresentada.

  9. Clique em Guardar. A nova página aparece no gráfico, porque existe agora uma transição que a direciona.

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

  11. Adicione um processamento de entrada que forneça o horário de funcionamento da loja, semelhante aos passos realizados para a localização da loja.

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

Página do item da encomenda

Em seguida, vai criar uma página que usa parâmetros de formulário. Quando o utilizador final pede uma nova encomenda de camisolas, a sessão é transferida para esta página. Quando está ativa, esta página recolhe um tamanho e uma cor para a encomenda da camisola.

Crie um tipo de entidade personalizado para o tamanho da camisa

Os tipos de entidades são usados para controlar a forma como os dados da entrada do utilizador final são extraídos. Os agentes conversacionais (Dialogflow CX) fornecem entidades do sistema predefinidas que podem corresponder a muitos tipos de dados comuns. Por exemplo, existem entidades do sistema para fazer corresponder datas, horas, cores, endereços de email, etc. Também pode criar as suas próprias entidades personalizadas para fazer corresponder dados personalizados.

Para este agente, pode usar uma entidade do sistema para a cor da camisola, mas tem de criar uma entidade personalizada para o tamanho da camisola. O tipo de entidade de tamanho deve ter as seguintes entradas de entidade:

Entidade Sinónimos
pequeno pequeno, minúsculo
média médio, normal, médio
grande grande, enorme, gigante

Para criar esta entidade:

  1. Selecione o separador Gerir.
  2. Clique em Tipos de entidades.
  3. Clique em +Criar.
  4. Definir o nome a apresentar como size.
  5. Adicione as entradas de entidades indicadas na tabela acima.
  6. Clique em Guardar.

Crie uma intenção de encomenda com parâmetros de intenção

Precisa de uma intenção que seja correspondida quando o utilizador final pede uma nova encomenda de camisas. Este objetivo também deve captar opcionalmente a cor e/ou o tamanho da camisola pretendida, fornecidos pelo utilizador final, caso este forneça essas informações antecipadamente.

Os parâmetros são usados para capturar e referenciar valores que foram fornecidos pelo utilizador final durante uma sessão. Cada parâmetro tem um nome a apresentar e um tipo de entidade. Ao contrário da entrada do utilizador final não processada, os parâmetros são dados estruturados que podem ser facilmente usados para realizar alguma lógica ou gerar respostas.

Controla a forma como os dados do utilizador final são extraídos com a correspondência de intenções através da anotação de partes das suas expressões de preparação e da configuração dos parâmetros de intenção associados. Por exemplo, considere uma expressão de preparação como "Qual é a previsão para amanhã em Tóquio?" Deve anotar "amanhã" com um parâmetro date e "Tóquio" com um parâmetro location. Quando anota partes de uma expressão de preparação, os agentes conversacionais (Dialogflow CX) reconhecem que estas partes são apenas exemplos de valores reais que serão fornecidos pelos utilizadores finais no tempo de execução. Para uma entrada do utilizador final, como "Qual é a previsão para sexta-feira em Lisboa?", Os agentes conversacionais (Dialogflow CX) extrairiam o parâmetro date de "sexta-feira" e o parâmetro location de "Sydney".

Para anotar uma expressão de treino com a consola:

  1. Selecione a parte da expressão de treino que quer anotar.
  2. Selecione o tipo de entidade pretendido na lista.
  3. É criado um parâmetro para si na tabela de parâmetros abaixo.

Crie uma intenção semelhante aos passos que seguiu acima. Atribua um nome a esta intenção order.new. Para cada expressão que contenha uma cor, anote a cor com um parâmetro color e o tipo de entidade do sistema @sys.color. Para cada expressão que contenha um tamanho de camisa, anote o tamanho com um parâmetro size e o tipo de entidade personalizada @size que criou nos passos anteriores. As suas expressões de preparação e parâmetros devem ser semelhantes aos seguintes:

Captura de ecrã de intenção

Crie uma página de encomendas

Crie a nova página de encomenda seguindo passos semelhantes aos anteriores:

  • Nome a apresentar: New Order
  • Cumprimento da entrada: Ok, let's start a new order.

Adicione um formulário à página de encomenda

Para cada página, pode definir um formulário, que é uma lista de parâmetros que devem ser recolhidos do utilizador final para a página. O agente interage com o utilizador final em várias voltas de conversa, até ter recolhido todos os parâmetros do formulário necessários, que também são conhecidos como parâmetros da página. Para cada parâmetro de formulário, também fornece comandos que o agente usa para pedir essas informações ao utilizador final. Este processo é denominado preenchimento de formulários.

Quando um utilizador final fornece parâmetros de intenção para uma correspondência de intenção, os parâmetros de intenção tornam-se parâmetros de sessão. Quando uma página se torna ativa inicialmente, todos os respetivos parâmetros de formulário são pré-preenchidos com quaisquer parâmetros de sessão com o mesmo nome. Assim, se o utilizador final fornecer o tamanho ou a cor quando a intenção order.new for correspondida, estes valores são preenchidos automaticamente no formulário.

Para a nova página de encomendas, tem de definir dois parâmetros de formulário obrigatórios:

Obrigatória Nome a apresentar Tipo de entidade É lista Comando
cor @sys.color Que cor quer?
tamanho @size Que tamanho quer?

Para adicionar este formulário:

  1. Clique na página Novo pedido no gráfico.
  2. Clique no botão Parâmetros adicionar . É aberto o painel de edição de parâmetros.
  3. Adicione os parâmetros conforme descrito na tabela acima.
  4. Clique em Guardar.
  5. Feche o painel de edição de parâmetros.

Adicione um trajeto de intenção de encomenda ao fluxo

Semelhante aos passos que seguiu acima, adicione um trajeto ao fluxo de início predefinido. Esta rota deve ser chamada quando o utilizador final quiser fazer uma nova encomenda:

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

Página de confirmação

A página final apenas confirma a encomenda e termina a sessão.

Crie a página de confirmação

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

  • Nome a apresentar: Order Confirmation
  • Cumprimento da entrada: You can pick up your order for a $session.params.size $session.params.color shirt in 7 to 10 business days. Goodbye.

Adicione rotas de condições à página de encomendas

Também pode usar condições para determinar se uma rota é chamada. As condições são usadas frequentemente para verificar se um formulário está concluído ou são configuradas para serem sempre chamadas quando avaliadas.

Para definir condições na consola, consulte a documentação Definir condições.

Adicione a seguinte rota à página de encomendas, que é chamada quando o formulário da página de encomendas é preenchido. Repare como esta rota de condição usa referências de parâmetros na respetiva resposta ao utilizador final e como faz a transição da sessão para a página Confirmação da encomenda.

  • Condição: $page.params.status = "FINAL"
  • O agente diz: 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 encomenda, que será chamada para cada interação conversacional em que a página está ativa e a rota de condição é avaliada. Quando a condição acima é avaliada e chamada, a página fica inativa, pelo que esta rota de condição true não é avaliada:

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

Crie um caminho de condição para terminar a sessão

Adicione a seguinte rota de condição à página Confirmar encomenda para terminar a sessão assim que essa página ficar ativa e o respetivo preenchimento de entrada for processado:

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

Teste o agente concluído

Teste o agente com o seguinte diálogo:

Diálogo Explicação
Utilizador final: Olá
Agente: Olá, sou um agente virtual de encomendas de camisas. Em que posso ser útil?
  1. A rota Default Welcome Intent no Default Start Flow é chamada.
  2. O preenchimento deste controlador de estado ("Olá, isto...") É adicionado à fila de respostas.
  3. O agente envia a fila de respostas ao utilizador final.
Utilizador final: quero comprar uma camisa azul
Agente: OK, vamos iniciar uma nova encomenda.
Agente: gostava de recolher mais algumas informações suas.
Agente: que tamanho quer?
  1. A rota do comando order.new no fluxo de início predefinido é avaliada.
  2. A intenção order.new é correspondida e o parâmetro de intenção color é definido como "blue".
  3. A sessão transita para a página Novo pedido e o parâmetro de intenção cor torna-se um parâmetro de sessão.
  4. A página Nova encomenda tem um preenchimento de entrada ("OK, vamos começar…"), Assim, esta ação é adicionada à fila de respostas.
  5. O parâmetro de sessão color é usado para preencher o parâmetro de formulário com o mesmo nome.
  6. A rota de condição verdadeira na página Nova encomenda é avaliada e chamada. Tem uma mensagem de resposta ("Gostaria de recolher…"), Assim, esta ação é adicionada à fila de respostas.
  7. O formulário da página não está preenchido, pelo que o agente usa o comando de tamanho ("Qual é o tamanho…") e adiciona-o à fila de respostas.
  8. O agente envia a fila de respostas ao utilizador final.
Utilizador final: grande
Agente: selecionou uma camisa azul grande.
Agente: pode levantar a sua encomenda de uma camisola azul grande no prazo de 7 a 10 dias úteis. Adeus.
  1. A entrada do utilizador final preenche o parâmetro size pedido pelo agente no turno de conversa anterior.
  2. A rota de preenchimento do formulário na página Nova encomenda é avaliada e chamada. Tem um preenchimento ("Selecionou…"), que é adicionado à fila de respostas com as respetivas referências de parâmetros resolvidas para valores reais fornecidos pelo utilizador final.
  3. A sessão transita para a página Confirmação da encomenda.
  4. A página Confirmação da encomenda tem um preenchimento de entrada ("Pode recolher..."), que é adicionado à fila de respostas.
  5. O agente envia a fila de respostas ao utilizador final.
  6. A sessão passa para Terminar sessão.

Produção

Antes de executar o seu agente em produção, certifique-se de que implementa as práticas recomendadas de produção.