Los intents representan una tarea que el Asistente necesita que realice tu acción, como alguna entrada del usuario que necesita procesamiento o un evento del sistema que debes controlar. Los intents se usan para compilar los modelos de invocación y los modelos de conversación. Cuando ocurren estos eventos, el tiempo de ejecución de Asistente lo hace coincidir con el intent correspondiente y lo envía a tu Acción para que lo procese. Existen dos tipos principales de intents, que se describen en la siguiente lista:
Los intents del usuario te permiten ampliar la capacidad de Asistente para comprender las solicitudes de los usuarios que son específicas de tu marca y tus servicios. Puedes definir frases de entrenamiento personalizadas dentro de un intent, que, a su vez, genera el modelo de idioma de un intent. Ese modelo de lenguaje aumenta la CLN de Asistente, lo que aumenta su capacidad de comprender aún más.
Los intents del sistema tienen datos de entrenamiento, o bien otros indicadores de entrada no conversacionales definidos por Asistente. Esto significa que no necesitas definir frases de entrenamiento para estos intents. Asistente establece coincidencias con estos intents de manera estándar durante eventos conocidos del sistema, como la invocación principal o cuando los usuarios no proporcionan ninguna entrada.
Intents de usuarios
Cuando compilas Acciones, creas intents de usuario que contienen frases de entrenamiento, lo que amplía la capacidad de Asistente para comprender aún más. Asistente usa tus frases de entrenamiento para aumentar su CLN cuando delega las solicitudes de los usuarios a tus Acciones.
Cuando esto ocurre, Asistente gestiona la comunicación entre el usuario y tus Acciones y asigna la entrada del usuario a un intent que tiene un modelo de idioma coincidente. Luego, Asistente notifica a tus acciones del intent coincidente para que puedas procesarlo en una escena.
Cuando creas intents de usuario, debes especificar los siguientes elementos:
Una designación de intent global define si el tiempo de ejecución de Asistente puede coincidir con el intent del usuario especificado en el momento de la invocación y durante una conversación. De forma predeterminada, Asistente puede hacer coincidir los intents del usuario solo durante una conversación. Solo los intents que marcas como globales son aptos para la invocación de vínculos directos.
Las frases de entrenamiento son ejemplos de lo que podría decir un usuario para hacer coincidir el intent. El motor de comprensión del lenguaje natural (CLN) de Asistente expande naturalmente estas frases de entrenamiento para incluir otras similares. Proporcionar un gran conjunto de ejemplos de alta calidad aumenta la calidad del intent y la precisión de la coincidencia.
Los parámetros son datos escritos que deseas extraer de la entrada del usuario. Para crear un parámetro, anota las frases de entrenamiento con tipos para notificarle al motor de CLN que quieres que se extraigan las partes de las entradas del usuario. Puedes usar tipos de sistema o crear tus propios tipos personalizados para los parámetros.
Cuando el motor de CLN detecta una coincidencia de parámetro en la entrada del usuario, extrae el valor como un parámetro escrito para que puedas realizar la lógica con una escena. Si un parámetro de intent tiene el mismo nombre que un espacio de escena, el tiempo de ejecución de Asistente llena automáticamente el espacio de escena con el valor del parámetro del intent. Consulta la documentación sobre la asignación de valor de ranura para obtener más información.
Los parámetros de intent también admiten coincidencias "parciales". Por ejemplo, si especificas un tipo de DateTime
y el usuario solo proporciona una fecha, la CLN de todos modos extrae el valor parcial como parámetro.
Te recomendamos que uses tu propia CLN para controlar todas las entradas del usuario para una Acción. Por ejemplo, es posible que quieras que tu acción responda a todas las situaciones sin coincidencias durante una conversación. Para asegurarte de capturar todas las entradas del usuario, crea un intent con el Tipo de texto de formato libre. Sin embargo, debes evitar el uso de intents personalizados para anular globalmente el comportamiento predeterminado sin coincidencias de Asistente, ya que esto puede afectar negativamente la capacidad de los usuarios para moverse entre acciones.
Cuando creas un intent personalizado en la Consola de Actions, Actions Builder sugiere intents del sistema que pueden tener la misma función que tu intent de usuario. Para obtener más información sobre los intents del sistema, consulta la siguiente sección.
Intents del sistema
Asistente establece coincidencias con intents del sistema en función de eventos estándar del sistema. Estos eventos pueden tener un modelo de lenguaje definido por el sistema, como los usuarios que dicen "pause" para pausar el reproductor multimedia, o pueden no tener un modelo de lenguaje, como los usuarios que no proporcionan ninguna entrada. Debido a que Asistente proporciona estos intents, no tienes que preocuparte por cómo se vinculan, sino por cómo controlarlos cuando se hacen una coincidencia.
Los intents del sistema también reemplazan la necesidad de crear intents de usuario para acciones que son necesarias con frecuencia, como YES
y NO
. Los intents del sistema se entrenan para todas las configuraciones regionales, lo que te permite implementar con mayor facilidad una experiencia coherente para tus usuarios en varios idiomas.
Los intents del sistema también se pueden configurar como intents globales.
Se controlan las versiones de los intents del sistema. Puedes usar una versión específica de un intent del sistema, siempre y cuando Asistente admita esa versión. Si una acción usa una versión no compatible de un intent del sistema, ese intent del sistema se actualiza automáticamente a una versión compatible.
Lista de intents
Intent | Descripción |
---|---|
actions.intent.MAIN
|
Todos los proyectos de Acciones deben contener esta invocación principal predeterminada, que está vinculada a tu nombre visible. Los usuarios dicen frases como "Hey Google, habla con <nombre visible>" para invocar la acción. |
|
La coincidencia de estos intents se realiza cuando el usuario dice algo que no se puede correlacionar con un intent de tu Acción. Puedes configurar repeticiones individuales y un mensaje de salida en el intent final. |
|
La coincidencia de estos intents se establece cuando no hay entrada del usuario después de 8 segundos. Puedes configurar repeticiones individuales para cada intent y un mensaje de salida en el intent final. |
actions.intent.CANCEL
|
Se detecta una coincidencia con este intent cuando el usuario desea salir de tus acciones durante una conversación, por ejemplo, cuando dice "Quiero salir". |
actions.intent.MEDIA_STATUS_FINISHED
|
Se establece una coincidencia con este intent y se envía a tu acción cuando un usuario completa la reproducción de contenido multimedia o pasa al siguiente fragmento. |
actions.intent.MEDIA_STATUS_PAUSED
|
Se establece una coincidencia con este intent y se envía a tu acción cuando un usuario pausa la reproducción de contenido multimedia en una respuesta multimedia. |
actions.intent.MEDIA_STATUS_STOPPED
|
Se establece una coincidencia con este intent y se envía a tu acción cuando un usuario detiene la reproducción de contenido multimedia o la sale de ella desde una respuesta multimedia. |
actions.intent.MEDIA_STATUS_FAILED
|
Se establece una coincidencia con este intent y se envía a tu acción cuando no se reproduce el reproductor de una respuesta multimedia. |
actions.intent.YES
|
Se detecta una coincidencia con este intent cuando un usuario proporciona una respuesta afirmativa a tu Acción. |
actions.intent.NO
|
Se detecta la coincidencia de este intent cuando un usuario proporciona una respuesta negativa a tu Acción. |
actions.intent.REPEAT
|
La coincidencia con este intent se establece cuando un usuario le pide a la acción que repita la última respuesta. Asistente maneja automáticamente las solicitudes que se repiten si el intent del sistema no está habilitado en el agente. Habilitar este intent del sistema te permite modificar las respuestas y el modo en que se controlan las solicitudes repetidas. |
actions.intent.PLAY_GAME
|
Este intent coincide cuando un usuario solicita jugar a un juego. Este intent te permite aceptar una invocación implícita (invocación sin usar tu nombre visible) que proporciona Actions on Google. |
Cómo agregar compatibilidad con otros idiomas
Algunos intents del sistema, como YES
, NO
y NO_MATCH
, solo se admiten en inglés.Para agregar compatibilidad con otros idiomas, debes crear intents de usuario que coincidan con esos intents del sistema. Los intents nuevos deben controlarse en el código de la misma manera que los intents del sistema que implementaste.
Por ejemplo, imagina que estás desarrollando una acción nueva e implementaste el intent del sistema YES
. El intent del sistema YES
solo se admite en inglés, pero también querrás que tu app admita interacciones en alemán y japonés.
Para admitir los idiomas adicionales, debes crear un intent que incluya frases de entrenamiento para alemán y japonés y, luego, implementar el control que usaste para el intent del sistema YES
.
Obtén más información para crear intents de usuario.
Obtén más información sobre cómo localizar tus intents de usuario.
Generación sin coincidencias
Cuando la respuesta de un usuario no coincide con uno de tus intents, Asistente intenta controlar la entrada. Este comportamiento facilita a los usuarios cambiar acciones en medio de una conversación. Por ejemplo, un usuario pregunta: "¿Qué películas proyectarán esta semana?" y, luego, cambia el contexto en medio de la conversación: "¿Cómo estará el clima mañana?". En este ejemplo, debido a que "¿Cómo estará el clima mañana?" no es una respuesta válida a la conversación activada por el mensaje inicial, Asistente intenta automáticamente controlar la coincidencia y mover al usuario a una conversación adecuada.
Si Asistente no puede encontrar una acción adecuada que coincida con la entrada del usuario, este continúa dentro del contexto de la acción.
Dado que Asistente podría interrumpir tu acción para responder a una situación válida sin coincidencias, no uses el intent del sistema NO_MATCH
para completar las consultas de los usuarios. Solo debes usar el intent NO_MATCH
para volver a pedirle al usuario.