GSP949

Visão geral
Quando você começa a dar ao seu agente de conversação a capacidade de ter conversas dinâmicas, alguns dos recursos mais avançados dos agentes podem acelerar esse desenvolvimento. Neste laboratório, você vai aprender a usar esses recursos para melhorar as conversas do seu agente. Também vai aprender como permitir que os usuários enviem o número de confirmação de um voo ao agente para perguntar qual é o status dele e como conectar o cenário "Reserve um voo" a uma nova página Anything else?, para que o agente sempre possa lidar com outra solicitação do usuário.
Objetivos
Ao final deste módulo, você será capaz de:
- Usar expressões regulares para validar parâmetros (por exemplo, em um número de PNR).
- Redefinir os parâmetros para nulo quando o usuário iniciar um novo fluxo de conversa.
Pré-requisitos
Este laboratório se baseia no agente básico "Flight Booker", desenvolvido em Agentes de Conversação: conceitos básicos sobre a criação de bots. Portanto, ele pressupõe que você já conhece alguns elementos de agentes de conversação, como intents, entidades, frases de treinamento, fluxos e páginas. Com base nesses princípios básicos, este laboratório vai implementar técnicas de conversação complexas usando recursos avançados dos agentes de conversação. Recomendamos fazer o laboratório anterior primeiro, mas você pode ir direto para este se já conhecer bem os agentes de conversação, seus recursos e a forma de usá-los.
Configuração e requisitos
Antes de clicar no botão Começar o Laboratório
Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é ativado quando você clica em Iniciar laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.
Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, e não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.
Confira os requisitos para concluir o laboratório:
- Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima (recomendado) ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e de estudante, o que poderia causar cobranças extras na sua conta pessoal.
- Tempo para concluir o laboratório: não se esqueça que, depois de começar, não será possível pausar o laboratório.
Observação: use apenas a conta de estudante neste laboratório. Se usar outra conta do Google Cloud, você poderá receber cobranças nela.
Como iniciar seu laboratório e fazer login no console do Google Cloud
-
Clique no botão Começar o laboratório. Se for preciso pagar por ele, uma caixa de diálogo vai aparecer para você selecionar a forma de pagamento.
No painel Detalhes do Laboratório, à esquerda, você vai encontrar o seguinte:
- O botão Abrir Console do Google Cloud
- O tempo restante
- As credenciais temporárias que você vai usar neste laboratório
- Outras informações, se forem necessárias
-
Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.
O laboratório ativa os recursos e depois abre a página Fazer Login em outra guia.
Dica: coloque as guias em janelas separadas lado a lado.
Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
-
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
{{{user_0.username | "Username"}}}
Você também encontra o nome de usuário no painel Detalhes do Laboratório.
-
Clique em Próxima.
-
Copie a Senha abaixo e cole na caixa de diálogo de Olá.
{{{user_0.password | "Password"}}}
Você também encontra a senha no painel Detalhes do Laboratório.
-
Clique em Próxima.
Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud.
Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
-
Acesse as próximas páginas:
- Aceite os Termos e Condições.
- Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
- Não se inscreva em testes gratuitos.
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
Observação: para acessar os produtos e serviços do Google Cloud, clique no Menu de navegação ou digite o nome do serviço ou produto no campo Pesquisar.
Tarefa 1: Começar a usar os agentes de conversação
Nesta tarefa, você vai fazer login nos Agentes de Conversação e criar um agente.
-
Ative as APIs Dialogflow e AI Applications.
-
Acesse o console do Google Cloud e clique em Menu de navegação (
) > Ver todos os produtos > navegue até Inteligência artificial > AI Applications.
-
Clique em + Criar app. Selecione Agente de conversação como o tipo de app que você quer criar.
-
Clique em Build your own na hora de criar um agente.
-
Dê a ele o nome Flight Booker - Parameter Manipulation.
-
Defina o local .
-
Confira se o fuso horário e o idioma padrão estão corretos. Defina o Conversation Start como Flow.
-
Clique em Create. Depois que o agente for criado, você vai ver o design e a configuração da interface dele.

Clique em Verificar meu progresso para conferir o objetivo.
Criar um agente
Tarefa 2: Importar um arquivo .blob de agente de conversação
Nesta tarefa, você vai importar um agente de conversação de um laboratório anterior.
-
Na parte de cima, selecione View all agents no menu suspenso Agent.
-
Clique no menu de contexto (três pontos verticais) à direita do seu agente de conversação.
-
Selecione Restore nas opções do menu.
-
Clique para ativar o botão de opção Cloud Storage, se necessário.
-
Insira o URI gs://spls/DialogflowCX_agents/gsp929-start-agent.blob.
-
Clique em Restore.
Sempre que precisar, consulte a documentação de "restauração" dos agentes de conversação.
Agora você tem um agente de conversação com tudo que foi concluído no laboratório anterior.
Observação: se você quiser manter uma cópia do agente de amostra, baixe gsp929-start-agent.blob no seu computador.
Clique em Verificar meu progresso para conferir o objetivo.
Importar um arquivo de agente de conversação
Teste seu conhecimento
Verificar o agente restaurado
Tarefa 3: Adicionar a função para verificar o status do voo
Agora você vai dar aos usuários a opção de falar com o agente para perguntar o status de um voo. Adicione uma entidade regex personalizada para coletar a referência de reserva do usuário, também conhecida como número de registro de identificação do passageiro (PNR, na sigla em inglês). "Regex" significa "expressão regular". Com ela é fácil especificar um formato fixo para o PNR e a grande vantagem é a verificação de erros integrada.
Criar uma entidade regex personalizada para a referência de reserva (número de PNR)
No setor aéreo, um PNR é usado para coletar as informações básicas de um passageiro e os detalhes do voo. Cada registro de PNR tem um identificador de referência exclusivo composto por até cinco ou seis caracteres alfanuméricos (letras e números).
Naturalmente, quando um usuário final envia um número de PNR, você precisa validar se ele segue as regras desses números. Faça isso com uma entidade regex personalizada.
-
Clique na guia Manage.
-
Clique em Entity Types no menu à esquerda.
-
Clique em + Create.
-
Insira PNR_Number na caixa de texto Display name da entidade.
-
Marque a caixa Regexp entities.
-
Em Entity, insira ^[a-zA-Z0-9]{5,6}$ na caixa de texto Add value.
O que essa regex significa?
Os caracteres entre colchetes, [a-zA-Z0-9], significam que qualquer dígito ou letra, seja ela maiúscula ou minúscula, vai resultar em uma correspondência. Já {5,6} significa que o valor precisa ter cinco ou seis caracteres. O $ indica o final da string.
Por exemplo, podemos ter um PNR XCr942 ou 1f38C.
Na Web você encontra muitos recursos de regex se precisar criar algo um pouco diferente no futuro.
-
Clique em Save.
Quando você clicar na entidade, verá algo assim:
Criar intents e páginas para a função de status do voo
Depois de criar a entidade personalizada @PNR_Number, vamos criar as intents e páginas que compõem esse fluxo de conversa que verifica o status de um voo.
-
Clique em Intents no menu à esquerda.
-
Clique em + Create.
-
Digite main.flight_status em "Display name".
-
Na seção Training Phrases, adicione as frases a seguir e pressione Enter após cada uma.
| Frases |
Anotações |
| PNR K4P89E, what is the flight status? |
K4P89E |
| My PNR is Z453K9, is it still on time? |
Z453K9 |
| Is my flight on time? |
n/a |
| What is my flight status? |
n/a |
| I would like to know if my flight is still on time |
n/a |
| Check flight status |
n/a |
Observação: as entidades PNR_Number devem ser preenchidas automaticamente pelos agentes de conversa. Se isso não tiver acontecido, você pode fazer a anotação manualmente selecionando e escolhendo a entidade @PNR_Number.
O resultado ficará assim:
-
Clique em Save.
Configurar a página "Start"
Agora você vai atualizar a página Start com uma nova rota usando a intent main.flight_status e criar as páginas subsequentes para concluir esse novo fluxo de conversa. Adicionar intents e as respectivas rotas na página "Start" garante que a solicitação do usuário seja reconhecida e faça os agentes de conversa reagirem corretamente em qualquer ponto do fluxo.
-
Clique em Build para ver o fluxo geral.
-
Clique na página Start.
-
Clique em + à direita de Rotas no canto superior direito.
-
Selecione main.flight_status no menu suspenso Intent.
-
Role para baixo até a seção Transition.
-
O botão de opção Page precisa ficar ativado.
-
Selecione +New Page no menu suspenso Page.
-
Digite Check flight status na caixa Page name.
-
Clique em Save.
-
Feche o painel de configuração de rotas quando quiser ver o painel de fluxo novamente.
-
Observe que a intent main.flight_status aparece na lista de rotas da página Start. No painel de fluxo, há uma seta que vai da página Start para a página Check flight status.
-
Clique na página Check flight status.
-
Clique em + à direita de Parameters.
-
Insira pnr_num no Display name.
-
Selecione @PNR_Number no menu suspenso de Entity type.
-
Clique para ativar Required, se ainda não estiver marcado.
Seu parâmetro deve ficar assim:
-
Role para baixo até a seção Initial prompt fulfillment.
-
Em Agent responses, adicione respostas de diálogo e digite What is your flight booking reference please? em "Agent dialogue".
-
Clique em Save.
-
Feche o painel de configuração Parameter quando quiser ver o painel de fluxo novamente.
-
Clique em + à direita de Routes na página Check flight status.
-
Role para baixo até a seção Condition.
-
Insira $page.params.status no Parameter.
-
Verifique se = está selecionado em Operand.
-
Insira FINAL em Value.
Sua condição deve ser semelhante a esta:
Observação: você notou as aspas em torno da palavra FINAL na captura de tela? O valor FINAL é aceitável com ou sem aspas, ou seja, FINAL ou "FINAL". Isso acontece porque é uma palavra única sem espaços. Quando você tem mais de uma palavra, é melhor usar aspas. Por exemplo, "Status do voo".
A expressão de condição ("$page.params.status = FINAL") informa ao agente de conversa que, depois que os parâmetros forem coletados com sucesso do usuário, não haverá mais nada a fazer nesta página.
-
Role para baixo até a seção Transition.
-
O botão de opção Page precisa ficar ativado.
-
Selecione + New Page no menu suspenso Page.
-
Digite Confirm flight status em Page name.
-
Clique em Save.
Configurar a página "Confirm flight status"
-
Clique na página Confirm flight status.
-
Clique em Edit fulfillment.
-
Em Agent responses, adicione respostas de diálogo e digite uma mensagem para a conversa.
Looking up your flight reference $session.params.pnr_num, we are pleased to confirm that your flight is on time and will depart LAX at 10am for NYC. Please arrive at least 1.5 hours before departure.
Would you like to make any changes to your flight?
Observação: você vai notar que todas as consultas de status de voo nos seus testes vão resultar na mesma mensagem estática. Como você implementaria uma pesquisa dinâmica pelas informações de status do voo? Usando o recurso de webhook! Nele, os agentes de conversação chamam uma API externa, fornecem a referência do PNR e recuperam o status real do voo.
Para usar um webhook, você precisa marcar a caixa de seleção dele. Mas isso está fora do escopo deste laboratório, porque o nosso foco aqui é o design da conversa. Mesmo assim, trouxemos esse assunto para que você tenha informações mais completas e saiba o que pesquisar para aprender mais.
-
Clique em Save.
-
Clique em + à direita de Routes. Talvez seja necessário fechar a janela de configuração do painel à direita para ver esse botão.
-
Selecione confirmation.yes no menu suspenso Intent.
-
Role para baixo até a seção Fulfillment.
-
Em Agent responses, adicione respostas de diálogo e digite Our agents will be in touch soon for your request to amend your scheduled flight no diálogo do agente.
-
Role para baixo até a seção Transition.
-
O botão de opção Page precisa ficar ativado.
-
Selecione +New Page no menu suspenso Page.
-
Digite Anything else? em Page name.
-
Clique em Save.
-
Adicione outra rota, desta vez selecionando confirmation.no no menu suspenso Intent.
-
Adicione uma resposta de diálogo em Agent responses para a rota atual: Great, we look forward to having you fly with us soon.
-
Adicione uma transição para a página Anything else? que você acabou de criar.
-
Clique em Save.
Configurar a página "Anything else?"
-
Clique na página Anything else?.
-
Clique para abrir Entry fulfillment.
-
Em Agent responses, adicione respostas de diálogo e digite Have you any further queries for me? no diálogo do agente.
-
Clique em Save.
-
Clique em + para adicionar uma rota na página Anything else?.
-
Selecione confirmation.yes no menu suspenso Intent.
-
Em Agent responses, sob Fulfillment, digite Please let me know how I can be of service.
-
O botão de opção Page precisa ficar ativado.
-
Na seção Transition, selecione Start Page para a Page.
-
Clique em Save.
-
Adicione outra rota, desta vez especificando a intent confirmation.no.
-
Digite No worries, I'm glad to be of assistance today. Goodbye. nas Agent responses em Fulfillment.
-
Escolha a página End Session como transição.
-
Clique em Save.
Tarefa 4: Testar seu agente de conversação
Parte 1 (testes positivos)
-
Clique em Toggle Simulator para abrir o simulador de teste.
O ideal é que você tenha definido alguns dados de teste com os resultados esperados. Uma forma de organizar os dados de teste é na ordem de progressão da conversa, como em uma conversa de chatbot.
-
Faça uma rodada de testes no seu agente seguindo os dados de teste abaixo.
| Quem |
Mensagem |
| Usuário |
Check flight status |
| Agente |
What is your flight booking reference please? |
| Usuário |
1234 |
| Agente |
What is your flight booking reference please? |
| Usuário |
abcdefghijk |
| Agente |
What is your flight booking reference please? |
| Usuário |
P34K09 |
| Agente |
Looking up your flight reference P34K09, ... |
| Usuário |
no |
| Agente |
Great, we look forward to having you fly with us soon. Have you any further... |
| Usuário |
no |
| Agente |
No worries, I'm glad to be of assistance today. Goodbye. |
-
Observe que os dados de teste usam deliberadamente 1234 (muito curto) e abcdefghijk (muito longo) antes de usar um número de PNR válido, P34K09. Devido à regex que você definiu, os dois primeiros valores são considerados números de PNR inválidos. Portanto, o agente continua perguntando até que possa atender à condição de status do parâmetro (FINAL) e seguir para a próxima página.
Observação: se você cometer algum erro no teste, basta redefini-lo clicando no ícone de lixeira no canto superior direito do agente de teste.
-
Observe que no painel do simulador há alguns dados sobre a conversa. Por exemplo, o fluxo de páginas, as intents correspondentes, os parâmetros e os valores preenchidos.
-
Clique no ícone de redefinição para limpar os dados de teste atuais. É uma boa ideia fazer isso após cada rodada de testes concluída, a menos que você queira repetir o mesmo teste (clicando no ícone de reciclagem).
Parte 2 (testes negativos)
Agora, em vez de responder No quando o fluxo chegar à página Anything else?, você vai responder Yes.
Observação: você percebeu que, quando perguntou o status do voo pela segunda vez, o agente não pediu o PNR? Essa não é a resposta esperada para esse cenário, em que o usuário quer pesquisar outro registro.
O que aconteceu? O agente se lembrou do número inserido anteriormente. Para corrigir esse cenário, você precisa redefinir (anular) o parâmetro pnr_num.
Clique em Verificar meu progresso para conferir o objetivo.
Testar o agente de conversação
Tarefa 5: Redefinir parâmetros
-
Clique na página Anything else?.
-
Clique no campo "Entry fulfillment" para abrir o painel de configuração do fulfillment.
-
Role até a seção Parameter presets.
-
Clique em Add a parameter.
-
Insira pnr_num no nome de Parameter em Parameter presets.
-
Digite null em Value.
-
Clique em Save.
-
Execute os testes novamente para garantir que todos os parâmetros sejam redefinidos para nulo. Isso vai fazer o agente pedir novos valores quando a conversa começar de novo.
Sua página Anything else? deve ser parecida com esta:
Conectar a página "Anything else?" à página "Confirm trip"
A página Anything else? pode ser reutilizada para o fluxo de conversa de reserva de voos que você importou no início deste laboratório. O resultado esperado é que nosso agente consiga continuar a conversa ao final das consultas, se o usuário quiser.
-
Clique na página Confirm trip.
-
Clique na rota confirmation.yes.
-
Adicione uma transição à página Anything else?.
-
Clique em Save.
-
Execute os testes de verificação do status do voo novamente para garantir que o parâmetro pnr_num seja redefinido como nulo e o agente peça um novo valor quando o usuário perguntar sobre um voo diferente.
Observação: clique no ícone de redefinição no painel Toggle Simulator para garantir que seu próximo cenário de teste comece do zero.
-
Agora, execute o cenário de teste de reserva de voo até a conclusão e reserve o voo. Responda Yes quando chegar à parte Anything else? do fluxo e comece uma nova reserva de voo.
Observação: o que funcionou e o que deu errado? Você pode ter notado que o agente se lembra dos detalhes do voo da reserva anterior e não repete as perguntas. Esse é o comportamento certo?
Assim como no cenário de verificação do status do voo, você precisa redefinir os parâmetros da reserva de voo para nulo.
-
Clique na página Anything else?.
-
Clique em Entry fulfillment.
-
Adicione os parâmetros da seguinte forma, definindo-os como nulos, igual fizemos em pnr_num:
| Parâmetro |
Valor |
| departure_city |
null |
| destination_city |
null |
| departure_date |
null |
| return_date |
null |
| passenger_name |
null |
-
Clique em Save.
-
Execute os testes novamente para garantir que todos os parâmetros sejam redefinidos para nulo quando você responder No na hora que o agente perguntar se as informações estão corretas.
Teste de conhecimento
Exportar seu agente
Se você quiser exportar seu agente de conversação para usar no seu próprio projeto, siga estas etapas:
-
No menu suspenso Agent na parte de cima, selecione View all agents.
-
Clique no menu de contexto (três pontos verticais
) e escolha Export.
-
Clique no botão de opção Download.
-
Clique em Export.
Parabéns!
Agora você sabe como usar expressões regulares para validar parâmetros em um número de PNR e redefinir parâmetros para nulo quando o usuário iniciar um novo fluxo de conversa.
Treinamento e certificação do Google Cloud
Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.
Manual atualizado em 24 de abril de 2025
Laboratório testado em 24 de abril de 2025
Copyright 2025 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.