Ações de conversa

As ações de conversa permitem que você estenda o Google Assistente com suas próprias interfaces de conversação, que dão aos usuários acesso aos seus produtos e serviços. As ações usam o avançado mecanismo de processamento de linguagem natural (PLN) do Google Assistente para processar e entender entradas de linguagem natural e realizar tarefas com base nelas.

Informações gerais

Uma ação de conversa é um objeto simples que define um ponto de entrada (chamado de invocação) em uma conversa:

  • Uma invocação define como os usuários informam ao Google Assistente que querem iniciar uma conversa com uma das suas ações. A invocação de uma ação é definida por uma única intent que é correspondida quando os usuários a solicitam.
  • Uma conversa define como os usuários interagem com uma ação depois que ela é invocada. Você cria conversas com intents, tipos, cenas e solicitações.
  • Além disso, suas ações podem delegar trabalho extra para fulfillment, que são serviços da Web que se comunicam com suas ações por webhooks. Isso permite que você faça a validação de dados, chame outros serviços da Web, realize a lógica de negócios e muito mais.

Você agrupa uma ou várias ações, com base nos casos de uso importantes para os usuários, em um contêiner lógico chamado de projeto do Actions. O projeto do Actions contém todo o modelo de invocação (a coleção de todas as suas invocações), que permite que os usuários comecem em locais lógicos no modelo de conversa (todas as coisas que os usuários podem dizer e todas as maneiras possíveis de responder aos usuários).

Figura 1. Uma coleção de ações que servem como pontos de entrada para um modelo de conversa. As intents qualificadas para invocação são consideradas globais.

Invocação

A invocação está associada a um nome de exibição que representa uma marca, nome ou persona que permite aos usuários pedir ao Google Assistente para invocar suas ações. Os usuários podem usar esse nome de exibição sozinho (chamado de invocação principal) ou em combinação com frases de link direto opcionais para invocar suas ações.

Por exemplo, os usuários podem dizer as frases abaixo para invocar três Ações separadas em um projeto com o nome de exibição "Fatos sobre o Google":

  • "Ok Google, falar com Fatos sobre o Google"
  • "Ok Google, fale com o Facts about Google para receber informações da empresa"
  • "Ok Google, fale com Facts about Google para receber fatos históricos"

A primeira invocação no exemplo é a invocação principal. Essa invocação está associada a uma intent especial de sistema chamada actions.intent.MAIN. A segunda e a terceira são invocações de links diretos que permitem especificar frases adicionais para que os usuários solicitem uma funcionalidade específica. Essas invocações correspondem às intents de usuário que você designou como globais. Cada invocação neste exemplo fornece um ponto de entrada em uma conversa e corresponde a uma única ação.

Figura 2. Exemplo de invocação principal.

A Figura 2 descreve um fluxo de invocação principal típico:

  1. Quando os usuários solicitam uma ação, eles geralmente pedem ao Google Assistente pelo seu nome de exibição.
  2. O Google Assistente associa a solicitação do usuário à intent correspondente que corresponde à solicitação. Nesse caso, é actions.intent.MAIN.
  3. A ação é notificada da correspondência da intent e responde com a solicitação correspondente para iniciar uma conversa com o usuário.

Conversa

A conversa define como os usuários interagem com uma ação depois que ela é invocada. Você cria essas interações definindo a entrada válida do usuário para sua conversa, a lógica para processar essa entrada e as solicitações correspondentes para responder ao usuário com elas. A figura e a explicação a seguir mostram como uma conversa típica funciona com os componentes de baixo nível de uma conversa: intents, tipos, cenas e solicitações.

Figura 3. Exemplo de uma conversa

A Figura 3 descreve uma conversa típica:

  1. Quando o usuário diz algo, o PLN do Google Assistente associa a entrada a uma intent adequada. Uma intent será escolhida se o modelo de idioma dela tiver uma correspondência próxima ou exata com a entrada do usuário. Você define o modelo de linguagem especificando frases de treinamento ou exemplos de frases que os usuários podem querer dizer. O Google Assistente analisa essas frases de treinamento para criar o modelo de linguagem da intent.
  2. Quando o PLN do Google Assistente corresponde a uma intent, ele pode extrair os parâmetros necessários da entrada. Esses parâmetros têm tipos associados a eles, como uma data ou um número. Anote partes específicas das frases de treinamento de uma intent para especificar quais parâmetros você quer extrair.
  3. Em seguida, uma cena processa a intent correspondente. Pense nas cenas como os executores lógicos de uma ação, que fazem o trabalho pesado e a lógica necessária para levar uma conversa adiante. Os cenários são executados em loop, proporcionando um ciclo de vida de execução flexível que permite realizar tarefas como validar parâmetros de intent, preencher slots, enviar solicitações de volta ao usuário e muito mais.
  4. Quando a execução de uma cena termina, ela geralmente envia uma solicitação de volta aos usuários para continuar a conversa ou pode encerrá-la, se apropriado.

Fulfillment

Durante a invocação ou uma conversa, sua ação pode acionar um webhook que notifica um serviço de fulfillment para realizar algumas tarefas.

Figura 4. Exemplo de uma conversa

A Figura 4 descreve como usar o fulfillment para gerar comandos, uma maneira comum de usar o fulfillment:

  1. Em pontos específicos da execução da ação, ela pode acionar um webhook que envia uma solicitação para um gerenciador de webhook registrado (seu serviço de fulfillment) com um payload JSON.
  2. O fulfillment processa a solicitação, como chamar uma API REST para realizar pesquisas de dados ou validar alguns dados do payload JSON. Uma maneira muito comum de usar o fulfillment é gerar um comando dinâmico no momento da execução para que suas conversas fiquem mais personalizadas para o usuário atual.
  3. O fulfillment retorna uma resposta para a ação que contém um payload JSON. Ele pode usar os dados do payload para continuar a execução e responder ao usuário.