Nesta página, explicamos como criar um app do Google Chat capaz de entender e responder com linguagem natural usando o Dialogflow (em inglês). Este guia usa o Dialogflow CX, que tem uma integração direta com o Google Chat. Também é possível usar o Dialogflow ES para criar um app do Google Chat seguindo o guia Dialogflow ES Google Chat.
Por exemplo, pense em um app de chat que ajuda pessoas que querem alugar carros. Um usuário escreve "Quero alugar um carro". O app do Chat pode responder com uma pergunta como "Onde você quer retirar o veículo?", o que dá início a uma conversa semelhante à de pessoas. Nesse caso, o app do Chat entende e responde em linguagem natural enquanto agenda o aluguel do carro.
Esse é apenas um exemplo. Os apps do Chat do Dialogflow são úteis para todos os tipos de interações. Se precisar de fala humana natural, ele vai chamar um app do Dialogflow Chat. Os agentes pré-criados ajudam você a começar rapidamente e mostram o que o Dialogflow pode fazer, como:
- Reservar voos
- Agendar consultas médicas
- Pedir comida para entrega
- Responder a perguntas sobre um catálogo de produtos de varejo, como se os itens estão disponíveis em outras cores
-
Figura 2. Testar o agente no Dialogflow CX para garantir que a lógica e a configuração dele funcionem conforme o esperado. O diagrama mostra um conjunto sequencial de páginas temáticas que se referem a etapas específicas da conversa, como definir um local de retirada e devolução de um carro alugado, e configura a lógica que as conecta. A conversa é testada em um simulador. -
Figura 3. Como configurar um app do Chat para processar respostas usando o agente do Dialogflow CX na página de configuração da API Chat no console do Google Cloud. -
Figura 4. Uma conversa sobre a reserva de um carro alugado com o app Chat do Dialogflow no Google Chat.
Objetivos
- Prepare o ambiente.
- Crie e implante um agente do Dialogflow CX.
- Crie e implante um app de chat com o agente do Dialogflow CX.
- Teste o app Chat.
Pré-requisitos
- Uma conta do Google Workspace para empresas ou empresas com acesso ao Google Chat.
- Ter um projeto do Google Cloud com o faturamento ativado. Para verificar se o faturamento está ativado em um projeto, consulte Verificar o status de faturamento dos seus projetos. Para criar um projeto e configurar o faturamento, consulte Criar um projeto do Google Cloud.
Arquitetura
O diagrama a seguir mostra a arquitetura de um app de chat criado com o Dialogflow:
No diagrama anterior, um usuário que interage com um app do Chat do Dialogflow tem o seguinte fluxo de informações:
- Um usuário envia uma mensagem no Chat para um app do Chat em uma mensagem direta ou em um espaço do Chat.
- Um agente virtual do Dialogflow, localizado no Google Cloud, recebe e processa a mensagem para produzir uma resposta.
- Opcionalmente, usando um webhook do Dialogflow, o agente do Dialogflow pode interagir com serviços externos de terceiros, como um sistema de gerenciamento de projetos ou uma ferramenta de emissão de passagens.
- O agente do Dialogflow envia uma resposta de volta para o serviço do app Chat.
- A resposta é entregue ao espaço do Chat.
Configure o ambiente
Antes de usar as APIs do Google, você precisa ativá-las em um projeto do Google Cloud. É possível ativar uma ou mais APIs em um único projeto do Google Cloud.No console do Google Cloud, ative a API Google Chat e a API Dialogflow.
Confirme se você está ativando as APIs no projeto do Cloud correto e clique em Next.
Confirme se você está ativando as APIs corretas e clique em Ativar.
Criar um agente do Dialogflow CX
Um agente do Dialogflow CX é um agente virtual que gerencia conversas simultâneas com seus usuários finais. Ele é um módulo de compreensão de linguagem natural que entende as nuances da fala humana. O Dialogflow converte textos do usuário final durante uma conversa em dados estruturados que seus apps e serviços podem entender. Você projeta e cria um agente do Dialogflow para atender aos tipos de conversas necessárias para seu sistema.
Um agente do Dialogflow é como um agente humano de call center. O agente pode ser treinado para lidar com os cenários comuns de conversas, e o treinamento não precisa ser muito detalhado.
Veja como criar o agente do Dialogflow CX:
Abra o console do Dialogflow CX. Clique em Menu > Dialogflow CX.
Escolha um projeto do Google Cloud. Para encontrar seu projeto, talvez seja necessário clicar em Todos e pesquisar.
Agora você tem a opção de escolher um agente pré-criado ou criar o seu. Se você preferir explorar a personalização de agentes em detalhes mais tarde, escolha um dos agentes predefinidos, que também são úteis para saber o que os agentes podem fazer.
Para escolher um agente predefinido, siga estas etapas:
- Clique em Usar agentes predefinidos.
Selecione um agente pré-criado. Para este guia, selecione Viagens: aluguel de carro.
Os agentes são classificados como iniciantes, intermediários ou avançados com base na quantidade de recursos que usam e na sofisticação da lógica de conversa. A escolha de um agente intermediário ou avançado pode exigir personalizações e configurações específicas do agente, incluindo a ativação de recursos e APIs no console do Google Cloud.
Clique em Importar como agente.
Para criar seu próprio agente, siga estas etapas:
- Clique em Criar agente.
- Selecione Gerar automaticamente para criar um agente de repositório de dados ou Criar seu próprio para criar outros tipos de agentes.
Para um tutorial detalhado do processo de criação de agentes, consulte Criar um agente do Dialogflow CX.
Defina as configurações básicas do agente:
- Em Nome de exibição, insira um nome de exibição.
- Selecione um local. Se você quiser mudar as configurações avançadas de local, clique em Editar.
- Selecione o fuso horário.
- Selecione o idioma padrão do agente. Não é possível mudar o idioma padrão de um agente após a criação.
Clique em Criar. O Dialogflow CX começa a criar o agente e, em seguida, mostra o fluxo de início padrão dele.
Opcionalmente, personalize o agente. Para ver um tutorial detalhado sobre o processo de personalização do agente, consulte Criar um agente do Dialogflow CX.
Como prática recomendada, teste o agente:
- Clique em Testar agente.
- Selecione Agente de teste no ambiente.
- Em "Ambiente", selecione Rascunho.
- Em "Fluxo", selecione Fluxo inicial padrão.
- Em "Página", selecione Página inicial.
- Na barra de escrita Talk to agent, digite
Hello
e pressione Enter. O agente responde se apresentando. - Conclua o teste fazendo a conversa de teste de exemplo.
O agente do Dialogflow CX é criado. Volte ao console do Dialogflow CX. Clique em Menu > Dialogflow CX.
Em Agentes, clique em > Copiar nome. Salve esse nome, porque ele será usado ao configurar o app Chat.
Criar um app de chat e conectá-lo ao agente do Dialogflow
Depois de criar um agente do Dialogflow CX, siga estas etapas para transformá-lo em um app de chat:
No console do Google Cloud, acesse a API Google Chat. Pesquise "API Google Chat" e clique em API Google Chat e em Gerenciar.
Clique em Configuração e configure o app do Chat:
- Em Nome do app, insira
Dialogflow App
. - No URL do avatar, digite
https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png
. - Em Descrição, digite
Responds to real human conversation
. - Em Funcionalidade, selecione Receber mensagens individuais e Participar de espaços e conversas em grupo.
- Em Configurações de conexão, selecione Dialogflow.
- Em Configurações do Dialogflow, selecione Dialogflow CX.
- Em Nome do recurso do agente ou ambiente, cole o nome do agente do Dialogflow CX que você copiou no final de Criar um agente do Dialogflow CX.
- Disponibilidade do app de chat para pessoas e grupos específicos no seu domínio e insira seu endereço de e-mail.
- Em Registros, selecione Registrar erros no Logging.
- Em Nome do app, insira
Clique em Salvar.
O app do Chat está pronto para receber e responder a mensagens no Chat.
Teste o app do Chat
Envie uma mensagem no Google Chat para testar o app Dialogflow CX.
Abra o Google Chat usando a conta do Google Workspace que você informou ao se adicionar como um testador confiável.
- Clique em Nova conversa.
- No campo Adicionar uma ou mais pessoas, digite o nome do seu app Chat.
Selecione o app Chat nos resultados. Uma mensagem direta é aberta.
Na nova mensagem direta com o app, digite
Hello
e pressioneenter
.O app Dialogflow Chat responde se apresentando.
- Conclua o teste fazendo a conversa de teste de exemplo.
Exemplo de conversa de teste
Para testar o app de chat do Dialogflow CX no console do Dialogflow CX ou no Google Chat, faça a seguinte conversa. A explicação ajuda você a entender como o agente do Dialogflow CX interpreta a linguagem natural do usuário e produz a própria resposta de linguagem natural em cada etapa da conversa. Esta conversa de exemplo é baseada no agente pré-criado chamado Viagens: aluguel de carros.
Dialog | Explicação |
---|---|
Usuário final:Olá Agente:Olá! Sou o agente virtual de aluguel de carros. Posso ajudar você a iniciar uma nova reserva de aluguel de carro. Como posso ajudar você hoje? |
|
Usuário final:Quero alugar um carro. Agente:Onde você quer retirar o veículo? |
|
Usuário final:Las Vegas Agente:Ok, a retirada será em Las Vegas. Agente:O local de entrega é diferente do local de embarque? |
|
Usuário final:sim. Vou deixar o carro em Los Angeles. Agente:Ok, seu destino é Los Angeles. Agente:em que data e horário você quer retirar o veículo? |
|
Usuário final:Gostaria de retirar o carro no dia 5 de março, ao meio-dia. Agente:Em que data e horário você quer devolver o veículo? |
|
Usuário final:15 de março, meio-dia. Agente: então, para confirmar: Você vai buscar o veículo em Las Vegas 05/03/2024, 12:00:00, e deixar o veículo em Los Angeles 15/03/2024 12:00:00 Está certo? |
|
Usuário final:sim, obrigado. Agente:ótimo. Agora vamos escolher um veículo. Agente:Você quer um veículo econômico ou de luxo? |
|
Usuário final:Economy, por favor. Agente:Você quer o carro ou o caminhão da Cymbal? |
|
Usuário final:Cymbal Truck. Agente:O Cymbal Truck custa US $50,33 por dia. Ele acomoda quatro pessoas e vem com rádio AM/FM. Quer continuar para o pagamento? Usuário final:sim. |
|
Agente: Qual tipo de cartão você vai usar? Usuário final:Altostrat Agente:insira o número do cartão. Usuário final:1234 1234 1234 1234 Agente:Qual é o nome no cartão? Usuário final:Charlie Agente:Qual é o endereço de faturamento? Usuário final: 1800 Amphibious Blvd. Mountain View, CA Agent: Qual é o CEP de faturamento? Usuário final: 94045 Agente: você vai escolher o carro Cymbal em Las Vegas, 05/03/2024, 12:00:00, e deixá-lo embora, em 15/03/2024, às 12:00:00. O total dessa viagem será de US$ 175,38. Agente:Agradecemos por alugar conosco. Tenha um ótimo dia. |
|
Enviar mensagens de cartão do Dialogflow
O Dialogflow pode responder com mensagens de texto ou cartão. Para responder com uma mensagem de cartão, especifique-a como um payload personalizado em fulfillment.
O JSON a seguir mostra como enviar uma mensagem de cartão como um payload personalizado no fulfillment:
json
{
'cardsV2': [{
'cardId': 'createCardMessage',
'card': {
'header': {
'title': 'A card message!',
'subtitle': 'Sent from Dialogflow',
'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png',
'imageType': 'CIRCLE'
},
'sections': [
{
'widgets': [
{
'buttonList': {
'buttons': [
{
'text': 'Read the docs!',
'onClick': {
'openLink': {
'url': 'https://developers.google.com/workspace/chat'
}
}
}
]
}
}
]
}
]
}
}]
}
Limites e considerações
- Os eventos de interação no chat têm suporte limitado e algumas considerações:
- Há suporte para os seguintes
tipos de eventos de interação:
MESSAGE
ADDED_TO_SPACE
CARD_CLICKED
- Para eventos
MESSAGE
ouADDED_TO_SPACE
, a entrada de consulta enviada ao agente do Dialogflow corresponde ao valor do campoargumentText
na mensagem de chat. Se a mensagem incluir um comando de barra, o valor do campotext
será usado. - Para eventos
CARD_CLICKED
, a entrada de consulta enviada ao agente do Dialogflow é formatada comoCARD_CLICKED.functionName
, em quefunctionName
corresponde ao valor do campofunction
do objeto Action anexado ao elemento de card interativo (como um botão). - O payload JSON completo de cada evento de interação do Chat é enviado ao Dialogflow como um payload personalizado no parâmetro de consulta e pode ser acessado com um webhook do Dialogflow consultando o valor do campo
WebhookRequest.payload
.
- Há suporte para os seguintes
tipos de eventos de interação:
- Considerações para responder a
comandos de barra e
receber dados de cards ou caixas de diálogo:
- Quando os apps do Dialogflow Chat recebem uma mensagem com um comando de barra
obrigatória, a entrada de consulta contém apenas o valor do campo
text
. O campotext
começa com o nome do comando de barra (por exemplo,/command
), que pode ser usado para configurar a intenção de um agente do Dialogflow para detectar um comando de barra. - Se o agente do Dialogflow precisar processar o payload JSON do evento de interação por chat, ele poderá fazer isso usando um webhook do Dialogflow para inspecionar o payload personalizado no parâmetro de consulta.
- Para mostrar uma conversa do
agente do Dialogflow, responda com um único payload JSON personalizado que
inclua uma mensagem com uma resposta de ação
DIALOG
. - Para processar dados inseridos em cards, o agente do Dialogflow pode detectar
intenções que começam com o texto
CARD_CLICKED
e responder com um único payload JSON personalizado que contém a ação adequada.
- Quando os apps do Dialogflow Chat recebem uma mensagem com um comando de barra
obrigatória, a entrada de consulta contém apenas o valor do campo
- Não há suporte para visualizações de links.
- Se o agente do Dialogflow responder com apenas uma mensagem, ela
será enviada ao Google Chat de forma síncrona. Se o agente do Dialogflow responder
com várias mensagens, todas elas serão enviadas para o Chat
de forma assíncrona chamando o método
create
no recursospaces.messages
na API Chat uma vez para cada mensagem. - Ao usar a integração do Dialogflow CX com o Chat, o agente do Dialogflow e o app Chat precisam ser configurados no mesmo projeto do Google Cloud. Se você precisar configurar o Dialogflow e o Chat em projetos diferentes do Cloud, defina um servidor intermediário para facilitar a conexão. Para saber como, consulte este exemplo de integração de chat para o Dialogflow CX no GitHub.
Resolver problemas
Quando um app do Google Chat ou um card retorna um erro, a interface do Chat mostra uma mensagem informando que "Ocorreu um erro". ou "Não foi possível processar sua solicitação". Às vezes, a interface do Chat não exibe nenhuma mensagem de erro, mas o app ou card produz um resultado inesperado. Por exemplo, uma mensagem de card pode não aparecer.
Embora uma mensagem de erro possa não aparecer na interface do Chat, mensagens de erro descritivas e dados de registro estão disponíveis para ajudar a corrigir erros quando o registro de erros para apps de chat estiver ativado. Se precisar de ajuda para visualizar, depurar e corrigir erros, consulte Resolver problemas e corrigir erros do Google Chat.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste tutorial, recomendamos que você exclua o projeto do Cloud.
- No console do Google Cloud, acesse a página Gerenciar recursos. Clique em Menu > IAM e administrador > Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
Temas relacionados
- O Dialogflow CX usa uma abordagem de
máquina de estado
para o design de agentes do Dialogflow, que oferece um controle claro e explícito
sobre uma conversa, uma melhor experiência do usuário final e um melhor
fluxo de trabalho de desenvolvimento. Ao criar um app do Dialogflow
Chat, recomendamos o uso do Dialogflow CX.
- Para saber mais sobre como criar e configurar agentes, consulte Agentes do Dialogflow CX.
- Para um tutorial detalhado sobre como criar e configurar agentes, consulte Criar um agente do Dialogflow CX.
- Criar apps para o Google Chat com o Gemini. Codelab:para conferir um exemplo de como criar um agente de repositório de dados do Dialogflow CX, consulte o app de chat de conhecimento do codelab
- Criar apps para o Google Chat com o Gemini. Codelab:para conferir um exemplo de como criar um agente de conversação do Dialogflow CX, consulte o app de feedback do Chat no codelab
- O Dialogflow ES é outra maneira de usar o Dialogflow com um app de chat.