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:
Antes de começar
Faça o seguinte antes de ler este guia:
- Leia os conceitos básicos sobre fluxo.
- Execute as etapas de configuração.
Criar um agente
Crie um novo agente para este guia:
- Abra o Console do Dialogflow CX.
- Criar ou escolher um projeto
- Clique em Criar agente.
- Selecione Criar sua própria.
- Preencha o formulário para as configurações básicas do agente.
- Você pode escolher qualquer nome de exibição.
- Selecione um local. Clique no botão Editar se quiser alterar as configurações avançadas de local.
- Selecione o fuso horário.
- Selecione o idioma padrão do agente.
- Se quiser, ative o Stackdriver Logging.
- 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:
- Clique no botão Testar agente para abrir o simulador.
- Digite
hello
na entrada de texto e pressione "Enter". - O agente responde com uma resposta de boas-vindas padrão.
- Feche o simulador.
As seguintes etapas foram realizadas pelo agente para essa entrada do usuário final:
- 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.
- 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.
- A rota chamada tem várias mensagens de resposta de conclusão. O agente escolheu uma delas aleatoriamente e a adicionou à fila de respostas.
- A rota chamada não tem destino de transição. Portanto, o fluxo e a página ativos não foram alterados.
- 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:
- Clique na guia Criar.
- Selecione o Fluxo inicial padrão na seção Fluxos.
- Clique no nó Iniciar no gráfico. Esta é a página inicial do Fluxo de início padrão.
- 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.
- 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. - Clique em Save.
- Feche o painel de edição da rota de intent.
Testar a mensagem de resposta de boas-vindas atualizada
Para testar a resposta atualizada:
- Clique no botão Testar agente para abrir o simulador.
- Digite
hello
na entrada de texto e pressione "Enter". - O agente responde com a nova mensagem.
- 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:
- Selecione a guia Manage.
- Clique em Intents.
- Clique em Criar.
- Insira
store.location
para o nome de exibição da intent. - 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?
- Clique em Save.
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:
- Clique na guia Criar.
- Selecione o Fluxo inicial padrão na seção Fluxos.
- Clique no botão de adição add na seção Páginas. Uma entrada de texto para o nome de exibição da página aparece.
- Insira
Store Location
como o nome de exibição da página e pressione Enter. - Clique no botão de opções more_vert ao lado do nome de exibição da página.
- Selecione Edit para abrir o painel de edição de página.
- Encontre Fulfillment de entrada e clique em Editar fulfillment.
- Digite
Our store is located at 1007 Mountain Drive, Gotham City, NJ.
no campo Fala do agente. - Clique em Save.
- Feche o painel de edição 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:
- Clique na guia Criar.
- Selecione o Fluxo inicial padrão na seção Fluxos.
- Clique no nó Iniciar no gráfico. Esta é a página inicial do Fluxo de início padrão.
- Adicione a rota de intent a seguir:
- Intent:
store.location
- Página de transição:
Store Location
- Intent:
- Clique em Save.
- Feche o painel de edição 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:
- Clique no botão Testar agente para abrir o simulador.
- Digite
What is the store location?
e pressione "Enter". - O agente fornece o endereço
- Feche o simulador.
As etapas a seguir foram tomadas pelo agente para corresponder à entrada do usuário final:
- 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.
- Uma das rotas avaliadas tem store.location como um requisito de intent. A entrada correspondeu a essa intent. Portanto, a rota foi chamada.
- A rota chamada não tem mensagens de resposta de fulfillment. Portanto, nada foi adicionado à fila de respostas.
- A rota chamada tem um destino de transição, portanto, a página ativa foi alterada para a página Local da loja.
- 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).
- 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:
- Clique no nó Iniciar no gráfico.
- Clique no botão Intent route e adicione o botão add. O painel de edição da rota de intent é aberto.
- Na seção Intent, selecione New intent. O painel de edição de intents será aberto.
Crie um intent
store.hours
com as seguintes frases de treinamento:What are your store hours?
What time do you close?
Clique em Save para salvar a intent. O painel de edição de intents será fechado.
Role para baixo até a seção Transition no painel de edição da rota de intent.
Para transição de Page, selecione New page.
Digite
Store Hours
na entrada de texto.Clique em Save. A nova página aparece no gráfico porque há uma transição que leva a ela.
Feche o painel de edição da rota de intent.
Adicione um fulfillment de entrada que forneça o horário de funcionamento da loja, semelhante às etapas seguidas em Store Location.
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:
- Selecione a guia Manage.
- Clique em Tipos de entidade.
- Clique em Criar.
- Defina o nome de exibição como
size
. - Adicione as entradas de entidade listadas na tabela acima.
- 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:
- Selecione a parte da frase de treinamento que você quer anotar.
- Selecione o tipo de entidade desejado na lista.
- 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:
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:
- Clique na página New Order no gráfico.
- Clique no botão Parameters para adicionar um botão add. O painel de edição de parâmetros é aberto.
- Adicione os parâmetros conforme descrito na tabela acima.
- Clique em Save.
- 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? |
|
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? |
|
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. |
|
Produção
Antes de executar seu agente na produção, implemente as práticas recomendadas de produção.