Intents integrados (Dialogflow)

Un intent integrado es un identificador único que puedes especificar para indicarle al Asistente de Google que tu Acción puede cumplir con una categoría de usuario específica solicitudes. Estos son algunos ejemplos de consultas de los usuarios Asistente establece coincidencias con intents integrados:

  • "Jugar" intent integrado: "Hey Google. Juega un juego de memoria”.
  • "Obtener el horóscopo" intent integrado: "Hey Google. Consigue mi horóscopo".

Durante el descubrimiento de acciones, Asistente puede usar metadatos sobre tu acción, incluidos los intents integrados que especificaste para recomendar tu acción a los usuarios. Para minimizar los recorridos de ida y vuelta en las conversaciones, Asistente también intenta analizar los parámetros de las consultas del usuario y pasarlos a tu Action.

Para ver la lista completa de intents integrados compatibles con Asistente, haz lo siguiente: incluidos sus parámetros y ejemplos de consultas de usuario, Referencia de intents integrados.

Cómo integrar intents integrados

Según cómo estés desarrollando tu Acción, hay diferentes maneras de para integrar intents integrados.

Dialogflow

Si usas Dialogflow para crear tu acción, puedes adjuntar un intent integrado de forma gráfica desde la consola de Dialogflow.

Para adjuntar un intent integrado con Dialogflow, sigue estos pasos:

  1. Abre la consola de Dialogflow, selecciona tu agente y, luego, navega a Intents.
  2. Crea o selecciona el intent que tu agente activa cuando recibe un un intent integrado específico. Abre la sección Eventos y haz clic en Agregar. Evento.

    Figura 1: Agregar un evento de Dialogflow en la consola de Dialogflow
  3. En el campo Events, escribe el nombre de un evento de intent integrado para tu agente (por ejemplo, actions_intent_PLAY_GAME).

    Figura 2: Cómo adjuntar un intent integrado a tu agente en la consola de Dialogflow
  4. Haz clic en Guardar.

SDK de Actions

Si usas el SDK de Actions para compilar tu acción, debes especificar el la asignación entre los intents integrados y las acciones en tu paquete de acciones.

Para adjuntar un intent integrado con el SDK de Actions, sigue estos pasos:

  1. Especifica el intent integrado en el campo de nombre de tu definición de Action.
  2. Sube tu paquete de acciones a tu proyecto de acciones con la herramienta gactions, como que se describe en la Descripción general del SDK de Actions.

Por ejemplo, en el siguiente fragmento, se muestra cómo puedes agregar el CHECK_AIR_QUALITY intent integrado:

{
   "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
      }
   }
}

Cómo controlar los parámetros de intents integrados

Cuando se invoca tu acción a través de un intent integrado, es posible que la entrega recibir parámetros adicionales. El esquema de intents define los nombres de las parámetros y sus tipos como tipos primitivos o schema.org entidades. Para ver el esquema de los intents integrados de acción de conversación, consulta el Referencia de intents integrados.

Los parámetros para los intents integrados son opcionales. Asistente se encarga de completar el parámetros con valores si se pueden extraer de la invocación del usuario el intent integrado.

Por ejemplo, el esquema del actions.intent.CHECK_AIR_QUALITY integrado define cuatro parámetros opcionales:

Nombre del parámetro Tipo
attributes Es un valor de cadena.
location Un objeto schema.org/Place.
temporalCoverage Un objeto schema.org/Duration.
timeIndicator Una EnumeratedDuration (extensión específica de Google)

En el siguiente fragmento de código, se muestra un ejemplo del webhook de conversación (JSON) cuando un usuario invoca tu Acción con la pregunta "¿Cuál es la calidad del aire en mañana en San Francisco?":

"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"
            }
         ]
      }
   ]

En este ejemplo, los parámetros toman los siguientes valores:

  • El parámetro location contiene el schema.org/Place. valor para "San Francisco".
  • El parámetro temporalCoverage contiene el schema.org/Duration. el valor de la fecha de mañana en relación con la hora de la invocación.
  • No hay valores para los parámetros attributes y timeIndicator porque la frase de invocación del usuario no incluía dicha información.

Si usas la biblioteca cliente de Actions on Google para Node.js, haz lo siguiente: puedes recuperar el valor de los parámetros como se muestra en el siguiente fragmento:

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.

});

Cómo probar integraciones con intents integrados

Sigue estos pasos para probar tu integración:

  1. Abre el simulador de Actions con la acción de prueba habilitada, o bien abre Asistente en tu dispositivo.
  2. Di o escribe una consulta asociada con ese intent integrado. Por ejemplo: “Quiero jugar a algo”.
  3. En el diálogo de selección de apps que se muestra, busca la acción.
  4. Selecciona tu app para enviar un intent a ella.
Figura 3: Diálogo de selección de acción resultante
de una frase de intent integrada.
Figura 4: Invocación de una acción adjunta a un intent integrado

Prácticas recomendadas para usar intents integrados

Debes seguir estas prácticas recomendadas cuando uses intents integrados:

  • Asignar intents integrados a acciones específicas: Cuando un intent integrado específico activa tu acción, envía al usuario al intent específico y en tu Action con la menor fricción posible. Para Por ejemplo, si tu Acción admite el intent integrado PLAY_GAME y recibe ese intent, debes enviar inmediatamente al usuario a la función del juego de tu Acción. Evita volver a preguntar al usuario si quiere jugar a algo.
  • Controla los parámetros de intents integrados: asegúrate de usar el intent integrado. valores de parámetros que Asistente envía a tu entrega. Evita volver a solicitarle esos valores.