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:
Antes de começar
Antes de ler este guia, deve fazer o seguinte:
- Leia as noções básicas sobre fluxos.
- Realize os passos de configuração.
Crie um agente
Crie um novo agente para este guia:
- Abra a consola do Dialogflow CX.
- Crie ou escolha um projeto.
- Clique em Criar agente.
- Selecione Crie o seu.
- Preencha o formulário para as definições básicas do agente:
- Pode escolher qualquer nome a apresentar.
- Selecione a sua localização preferida. Clique no botão Editar se quiser alterar as definições de localização avançadas.
- Selecione o seu fuso horário preferido.
- Selecione o idioma predefinido do seu agente.
- Opcionalmente, ative o Stackdriver Logging.
- 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:
- Clique no botão Agente de teste para abrir o simulador.
- Introduza
hello
na entrada de texto e prima Enter. - O agente responde com uma resposta de boas-vindas predefinida.
- Feche o simulador.
O agente realizou os seguintes passos para esta entrada do utilizador final:
- 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.
- 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.
- A rota chamada tem várias mensagens de resposta de processamento. O agente escolheu um aleatoriamente e adicionou-o à fila de respostas.
- A rota chamada não tem um destino de transição, pelo que o fluxo e a página ativos não foram alterados.
- 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:
- Clique no separador Criar.
- Selecione o Fluxo de início predefinido na secção Fluxos.
- Clique no nó Página inicial no gráfico. Esta é a página inicial do fluxo de início predefinido.
- 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.
- 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. - Clique em Guardar.
- Feche o painel de edição de rotas.
Teste a mensagem de resposta de boas-vindas atualizada
Para testar a resposta atualizada:
- Clique no botão Agente de teste para abrir o simulador.
- Introduza
hello
na entrada de texto e prima Enter. - O agente responde com a sua nova mensagem.
- 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:
- Selecione o separador Gerir.
- Clique em Intenções.
- Clique em Criar.
- Introduza
store.location
para o nome a apresentar da intenção. - 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?
- Clique em Guardar.
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:
- Clique no separador Criar.
- Selecione o Fluxo de início predefinido na secção Fluxos.
- Clique no botão de adição add na secção Páginas. É apresentada uma entrada de texto para o nome a apresentar da página.
- Introduza
Store Location
para o nome a apresentar da página e prima Enter. - Clique no botão de opções more_vert junto ao nome a apresentar da página.
- Selecione Editar para abrir o painel de edição de páginas.
- Encontre Cumprimento da entrada e clique em Editar cumprimento.
- 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. - Clique em Guardar.
- Feche o painel de edição de páginas.
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:
- Clique no separador Criar.
- Selecione o Fluxo de início predefinido na secção Fluxos.
- Clique no nó Página inicial no gráfico. Esta é a página inicial do fluxo de início predefinido.
- Adicione a seguinte rota de intenção:
- Intenção:
store.location
- Página de transição:
Store Location
- Intenção:
- Clique em Guardar.
- Feche o painel de edição 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:
- Clique no botão Agente de teste para abrir o simulador.
- Introduza
What is the store location?
e prima Enter. - O agente indica a morada.
- Feche o simulador.
O agente realizou os seguintes passos para a entrada do utilizador final:
- 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.
- 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.
- A rota chamada não tem mensagens de resposta de preenchimento, por isso, não adicionou nada à fila de respostas.
- A rota chamada tem um destino de transição, pelo que a página ativa mudou para a página Localização da loja.
- 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).
- 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:
- Clique no nó Página inicial no gráfico.
- Junto a Rotas, clique em add Adicionar. É aberto o painel de edição do trajeto de intenção.
- Na secção Intenção, selecione Nova intenção. É aberto o painel de edição de intenções.
Crie uma intenção
store.hours
com as seguintes expressões de treino:What are your store hours?
What time do you close?
Clique em Guardar para guardar a intenção. O painel de edição de intenções é fechado.
Desloque a página para baixo até à secção Transição no painel de edição de rotas.
Para a transição de Página, selecione Nova página.
Introduza
Store Hours
na entrada de texto apresentada.Clique em Guardar. A nova página aparece no gráfico, porque existe agora uma transição que a direciona.
Feche o painel de edição de rotas.
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.
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:
- Selecione o separador Gerir.
- Clique em Tipos de entidades.
- Clique em +Criar.
- Definir o nome a apresentar como
size
. - Adicione as entradas de entidades indicadas na tabela acima.
- 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:
- Selecione a parte da expressão de treino que quer anotar.
- Selecione o tipo de entidade pretendido na lista.
- É 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:
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:
- Clique na página Novo pedido no gráfico.
- Clique no botão Parâmetros adicionar add. É aberto o painel de edição de parâmetros.
- Adicione os parâmetros conforme descrito na tabela acima.
- Clique em Guardar.
- 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? |
|
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? |
|
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. |
|
Produção
Antes de executar o seu agente em produção, certifique-se de que implementa as práticas recomendadas de produção.