Intents integradas (Dialogflow)

Uma intent integrada é um identificador exclusivo que você pode especificar para informar Google Assistente para que sua Ação possa atender a uma categoria específica de usuários solicitações. Por exemplo, aqui estão alguns exemplos de consultas de usuários que o Google Assistente faz a correspondência com intents integradas:

  • "Jogar" intent integrada: "Ok Google. Jogue um jogo da memória"
  • "Acesse o horóscopo" intent integrada: "Ok Google. Confira meu horóscopo"
.

Durante a descoberta de ações, o Google Assistente pode usar metadados sobre sua ação, incluindo as intents integradas que você especificou; para recomendar sua Ação aos usuários. Para minimizar as idas e vindas de conversas, o Assistente também tenta verificar os parâmetros das consultas dos usuários e passá-los para sua ação.

Para ver a lista completa de intents integradas com suporte ao Google Assistente, incluindo os parâmetros e exemplos de consultas do usuário, consulte a Referência de intents integradas.

Integrar intents integradas

Dependendo de como você está criando sua ação, há diferentes maneiras de integrar intents integradas.

Dialogflow

Se você estiver usando o Dialogflow para criar sua ação, poderá anexar uma intent integrada graficamente no console do Dialogflow.

Para anexar uma intent integrada ao Dialogflow, siga estas etapas:

  1. Abra o console do Dialogflow, selecione seu agente e navegue até a Intents.
  2. Crie ou selecione a intent que o agente aciona ao receber uma uma intent integrada específica. Abra a seção Eventos e clique em Adicionar Evento.

    Figura 1. Adicionar um evento do Dialogflow ao console do Dialogflow.
  3. No campo Eventos, digite o nome de um evento de intent integrada ao seu agente (por exemplo, actions_intent_PLAY_GAME).

    Figura 2. anexar uma intent integrada ao agente no console do Dialogflow.
  4. Clique em Salvar.

SDK do Actions

Se você estiver usando o SDK do Actions para criar sua ação, especifique o mapeamento entre intents integradas e ações no pacote de ações.

Para anexar uma intent integrada com o SDK do Actions, siga estas etapas:

  1. Especifique a intent integrada no campo "Nome" da sua definição de Ação.
  2. Faça upload do pacote de ações para o projeto do Actions usando a ferramenta gactions, conforme descritos na visão geral do SDK do Actions.

Por exemplo, o snippet a seguir mostra como adicionar o CHECK_AIR_QUALITY intent integrada:

{
   "actions":[
      {
         "description":"Default Welcome Intent",
         "name":"MAIN",
         "fulfillment":{
            "conversationName":"conversation_1"
         },
         "intent":{
            "name":"actions.intent.MAIN"
         }
      },
      {
         "description":"Check Air Quality",
         "name":"CHECK_AIR_QUALITY",
         "fulfillment":{
            "conversationName":"conversation_1"
         },
         "intent":{
            "name":"actions.intent.CHECK_AIR_QUALITY"
         }
      }
   ],
   "conversations":{
      "conversation_1":{
         "name":"conversation_1",
         "url":"https://example.com/fulfillment",
         "fulfillmentApiVersion":2
      }
   }
}

Processar parâmetros de intent integrados

Quando sua ação é invocada por uma intent integrada, seu fulfillment pode para receber parâmetros adicionais. O esquema de intent define os nomes parâmetros e os tipos deles como tipos primitivos ou o schema.org entidades. Para visualizar o esquema das intents integradas da ação de conversa, consulte o Referência de intents integradas.

Os parâmetros das intents integradas são opcionais. O Google Assistente cuida de preencher parâmetros com valores se puderem ser extraídos da invocação do usuário a intent integrada.

Por exemplo, o esquema do actions.intent.CHECK_AIR_QUALITY integrado define quatro parâmetros opcionais:

Nome do parâmetro Tipo
attributes Um valor de string.
location Um objeto schema.org/Place.
temporalCoverage Um objeto schema.org/Duration.
timeIndicator Uma EnumeratedDuration (extensão específica do Google).

O snippet de código a seguir mostra um exemplo do webhook de conversa (JSON) quando um usuário invoca sua ação dizendo "Qual é a qualidade do ar em São Francisco amanhã?":

"inputs":[
      {
         "intent":"actions.intent.CHECK_AIR_QUALITY",
         "rawInputs":[
            {
               "inputType":"VOICE",
               "query":"what is the air quality in san francisco tomorrow"
            }
         ],
         "arguments":[
            {
               "name":"location",
               "structuredValue":{
                  "geo":{
                     "longitude":-122.41941550000001,
                     "latitude":37.7749295
                  },
                  "@context":"https://schema.org",
                  "@type":"Place",
                  "name":"san francisco"
               }
            },
            {
               "name":"temporalCoverage",
               "rawText":"2018-04-25",
               "textValue":"2018-04-25"
            }
         ]
      }
   ]

Neste exemplo, os parâmetros assumem os seguintes valores:

  • O parâmetro location contém o schema.org/Place. para "São Francisco".
  • O parâmetro temporalCoverage contém o schema.org/Duration. valor da data de amanhã em relação ao horário da invocação.
  • Não há valores para os parâmetros attributes e timeIndicator. porque a frase de invocação do usuário não inclui essas informações.

Se você usa a biblioteca de cliente do Actions on Google para Node.js, você pode recuperar o valor dos parâmetros, conforme mostrado no snippet a seguir:

app.intent('actions.intent.CHECK_AIR_QUALITY', (conv) => {
  const attributes = conv.arguments.get('attributes');
  const location = conv.arguments.get('location');
  const temporal_coverage = conv.arguments.get('temporalCoverage');
  Const time_indicator = conv.arguments.get('timeIndicator')

  // Your Action logic. If you need to use any of the parameter values,
  // you should check first that it is defined. Arguments.get returns
  // undefined if it can't find a value for a parameter.

});

Testar integrações com intents integradas

Siga estas etapas para testar a integração:

  1. Abra o simulador do Actions com a ação de teste ativada ou o Assistente no seu dispositivo.
  2. Fale ou digite uma consulta associada a essa intent integrada. Por exemplo: "Eu quero jogar."
  3. Na caixa de diálogo mostrada de seleção do app, encontre sua ação.
  4. Selecione seu app para enviar uma intent a ele.
Figura 3. Caixa de diálogo de seleção "Ação" resultante do
de uma frase de intent integrada.
Figura 4. Invocar uma ação anexada a uma intent integrada.

Práticas recomendadas para usar intents integradas

Siga estas práticas recomendadas ao usar intents integradas:

  • Mapear intents integradas para ações específicas: quando uma intent integrada específica acionar sua ação, direcionar o usuário à intent específica e na sua ação com o mínimo de atrito possível. Para exemplo, se a ação oferecer suporte à intent integrada PLAY_GAME e recebe essa intent, você deve enviar o usuário imediatamente ao recurso do jogo da sua ação. Evite perguntar novamente ao usuário se ele quer jogar.
  • Processar parâmetros de intent integrada: use a intent integrada. valores de parâmetros que o Assistente envia para seu fulfillment. Evite solicitar esses valores novamente ao usuário.