Intents

As intents representam uma tarefa que o Google Assistente precisa realizar, por exemplo, uma entrada do usuário que precisa ser processada ou um evento do sistema que você precisa processar. As intents são usadas para ajudar a criar modelos de invocação e de conversa. Quando esses eventos ocorrem, o ambiente de execução do Google Assistente faz a correspondência deles com a intent correspondente e a envia para a ação para processar. Há dois tipos principais de intents, descritos na lista a seguir:

  • As intents de usuário permitem ampliar a capacidade do Google Assistente de entender solicitações de usuários específicas para sua marca e seus serviços. Você define frases de treinamento personalizadas em uma intent, que, por sua vez, gera o modelo de linguagem dela. Esse modelo de linguagem amplia o PLN do Google Assistente, ampliando a capacidade de entender ainda mais.

  • As intents do sistema têm dados de treinamento ou outros indicadores de entrada não conversacionais definidos pelo Google Assistente. Isso significa que você não precisa definir frases de treinamento para essas intents. O Google Assistente faz a correspondência dessas intents de maneira padrão durante eventos conhecidos do sistema, como a invocação principal, ou quando os usuários não fornecem nenhuma entrada.

Figura 1. Um cenário comum de correspondência de intent. Um usuário diz algo que corresponde a uma intent global. A cena correspondente é ativada e, por fim, consome mais entradas do usuário. Outro intent é correspondido, que faz a transição e ativa outra cena.

Intenções de usuários

Ao criar ações, você cria intents de usuário que contêm frases de treinamento, o que amplia a capacidade do Google Assistente de entender ainda mais. Ele usa suas frases de treinamento para aumentar o PLN ao delegar solicitações de usuários para as ações.

Quando isso ocorre, o Google Assistente interrompe a comunicação entre o usuário e as ações, mapeando a entrada do usuário para uma intent que tenha um modelo de linguagem correspondente. Em seguida, o Google Assistente notifica as ações sobre a intent correspondente para que ela possa ser processada em uma cena.

Ao criar intents de usuário, você especifica os seguintes elementos:

  • Uma designação de intent global define se o ambiente de execução do Google Assistente pode corresponder à intent do usuário especificada no momento da invocação e durante uma conversa. Por padrão, o Google Assistente pode fazer a correspondência com as intents do usuário apenas durante uma conversa. Somente as intents marcadas como globais são qualificadas para invocação de link direto.

  • Frases de treinamento são exemplos do que um usuário pode dizer para corresponder à intent. O mecanismo de processamento de linguagem natural (PLN) do Google Assistente expande naturalmente essas frases de treinamento para incluir outras frases parecidas. Fornecer um conjunto grande de exemplos de alta qualidade aumenta a qualidade e a precisão da correspondência da intent.

  • Parâmetros são dados digitados que você quer extrair da entrada do usuário. Para criar um parâmetro, anote as frases de treinamento com types para notificar o mecanismo de PLN de que você quer que partes da entrada do usuário sejam extraídas. Use tipos de sistema ou crie seus próprios tipos personalizados de parâmetros.

Quando o mecanismo de PLN detecta uma correspondência de parâmetro na entrada do usuário, ele extrai o valor como um parâmetro digitado para que você possa executar a lógica com ele em um cenário. Se um parâmetro de intent tiver o mesmo nome de um slot de cena, o ambiente de execução do Google Assistente vai preencher automaticamente o slot com o valor do parâmetro da intent. Consulte a documentação sobre mapeamento de valor de slot para mais informações.

Os parâmetros de intent também oferecem suporte a correspondências "parciais". Por exemplo, se você especificar um tipo de DateTime e o usuário informar apenas uma data, o PLN ainda vai extrair o valor parcial como um parâmetro.

Você pode usar seu próprio PLN para processar todas as entradas do usuário para uma ação. Por exemplo, talvez você queira que a ação responda a todos os cenários sem correspondência durante uma conversa. Para garantir que você capture todas as entradas do usuário, crie uma intent com o tipo de texto de formato livre. No entanto, evite usar intents personalizadas para substituir globalmente o comportamento padrão sem correspondência do Google Assistente, já que isso pode afetar negativamente a capacidade de os usuários se moverem entre as ações.

Quando você cria uma intent personalizada no Console do Actions, o Actions Builder sugere intents do sistema que podem ter o mesmo papel que a intent do usuário. Para mais informações sobre intents do sistema, consulte a seção a seguir.

Intents do sistema

O Google Assistente faz a correspondência das intents do sistema com base nos eventos padrão do sistema. Esses eventos podem ter um modelo de linguagem definido pelo sistema, como os usuários dizendo "pausar" para pausar o player de mídia, ou não ter um modelo de linguagem, por exemplo, os usuários não fornecem nenhuma entrada. Como essas intents são fornecidas pelo Google Assistente, você não precisa se preocupar com a correspondência delas, mas apenas com como lidar com elas.

As intents do sistema também substituem a necessidade de criar intents de usuário para ações necessárias com frequência, como YES e NO. As intents do sistema são treinadas para todas as localidades, permitindo que você implemente com mais facilidade uma experiência consistente para seus usuários em vários idiomas. As intents do sistema também podem ser definidas como intents globais.

As intents do sistema têm controle de versão. Você pode usar uma versão específica de uma intent do sistema desde que ela tenha suporte do Google Assistente. Se uma ação usar uma versão não compatível de uma intent do sistema, ela será atualizada automaticamente para uma versão com suporte.

Lista de intents

Intent Descrição
actions.intent.MAIN Todo projeto do Actions precisa conter essa invocação principal padrão, que está vinculada ao seu nome de exibição. Os usuários dizem frases como "Ok Google, fale com <nome de exibição>" para invocar a ação.

actions.intent.NO_MATCH_1

actions.intent.NO_MATCH_2

actions.intent.NO_MATCH_FINAL

Esses intents são correspondidos quando o usuário diz algo que não pode ser associado a uma intent na sua Ação. É possível definir novas solicitações individuais e uma mensagem de saída na intent final.

actions.intent.NO_INPUT_1

actions.intent.NO_INPUT_2

actions.intent.NO_INPUT_FINAL

Essas intents são correspondidas quando não há entrada do usuário após oito segundos. Você pode definir novas solicitações individuais para cada intent e uma mensagem de saída na intent final.

actions.intent.CANCEL Essa intent é correspondida quando o usuário quer sair de suas ações durante uma conversa, por exemplo, um usuário dizendo: "Quero sair".
actions.intent.MEDIA_STATUS_FINISHED Essa intent é correspondida e enviada para a ação quando um usuário conclui a reprodução de mídia ou passa para a próxima mídia.
actions.intent.MEDIA_STATUS_PAUSED Essa intent é correspondida e enviada para sua ação quando um usuário pausa a reprodução de mídia em uma resposta.
actions.intent.MEDIA_STATUS_STOPPED Essa intent é correspondida e enviada para sua ação quando um usuário interrompe ou sai da reprodução de mídia de uma resposta.
actions.intent.MEDIA_STATUS_FAILED Essa intent é correspondida e enviada para sua ação quando o player de uma resposta de mídia não é reproduzido.
actions.intent.YES

Essa intent é correspondida quando um usuário fornece uma resposta afirmativa à sua Ação.

actions.intent.NO

Essa intent é associada quando um usuário dá uma resposta negativa à sua Ação.

actions.intent.REPEAT

Essa intent é correspondida quando um usuário pede que a ação repita a última resposta. As solicitações de repetição serão gerenciadas automaticamente pelo Google Assistente se a intent do sistema não estiver ativada no agente. Ativar essa intent do sistema permite modificar o processamento das solicitações repetidas e das respostas.

actions.intent.PLAY_GAME Essa intent é correspondida quando um usuário pede para jogar. Essa intent permite ativar uma invocação implícita (sem usar seu nome de exibição) fornecida pelo Actions on Google.

Adicionar suporte para outros idiomas

Algumas intents do sistema, como YES, NO e NO_MATCH, têm suporte apenas em inglês.Para adicionar suporte a outros idiomas, crie intents de usuário que correspondam a essas intents do sistema. As novas intents precisam ser processadas no código da mesma forma que as intents do sistema que você implementou.

Por exemplo, suponha que você esteja desenvolvendo uma nova ação e tenha implementado a intent de sistema YES. A intent do sistema YES só tem suporte em inglês, mas também quer que seu app ofereça suporte a interações em alemão e japonês. Para oferecer suporte a outros idiomas, crie uma intent que inclua frases de treinamento para alemão e japonês e, em seguida, implemente o processamento usado para a intent do sistema YES.

Saiba mais sobre como criar intents de usuário.

Saiba mais sobre a localização das intents de usuário.

Rendimento sem correspondência

Quando a resposta de um usuário não corresponde a uma das intents, o Google Assistente tenta processar a entrada. Esse comportamento facilita que os usuários mudem ações no meio de uma conversa. Por exemplo, um usuário pergunta: "Quais filmes estão em exibição esta semana?" e, em seguida, muda o contexto no meio da conversa: "Qual é a previsão do tempo para amanhã?" Nesse exemplo, como "Qual é a previsão do tempo para amanhã?" não é uma resposta válida para a conversa acionada pela solicitação inicial, o Google Assistente tenta processar a correspondência automaticamente e mover o usuário para uma conversa adequada.

Se o Google Assistente não encontrar uma ação adequada que corresponda à entrada do usuário, ele vai continuar no contexto da ação.

Como o Google Assistente pode interromper sua ação para responder a um cenário válido de não correspondência, não use a intent do sistema NO_MATCH para atender às consultas do usuário. Use apenas a intent NO_MATCH para enviar uma nova solicitação ao usuário.