Los tipos te permiten configurar el motor de CLN (comprensión del lenguaje natural) de Asistente para extraer datos estructurados de las entradas del usuario. Puedes usar tipos en las siguientes situaciones:
En los intents, puedes anotar frases de entrenamiento con tipos para crear ranuras. Cuando los usuarios dicen algo que coincide con una ranura, el motor de la CLN lo extrae como un parámetro escrito para que puedas procesarlo en una escena.
Dentro de la etapa de relleno de ranuras de una escena, puedes especificar varias ranuras que desees que el usuario proporcione antes de realizar la transición o salir de la escena.
Dentro de la etapa de conditions de una escena, puedes basar la lógica en si un parámetro tiene un valor específico definido en un tipo.
Tipos personalizados
Los tipos personalizados te permiten crear tu propia especificación de tipo para notificar a la CLN a fin de asignar un conjunto de valores a una sola clave. Puedes especificar tipos de varias maneras:
- Las palabras y los sinónimos te permiten asignar varios valores a una sola clave, que se llaman una entrada. Tu tipo puede contener una o más entradas. Si eliges esta opción, también puedes habilitar la siguiente configuración de CLN:
- Habilitar coincidencia parcial: Esta función permite que se detecten entradas con más de una palabra, incluso cuando las palabras se dicen en un orden diferente.
- Aceptar valores desconocidos: Cuando no puedes especificar todos los valores posibles, el procesador de idiomas puede aceptar palabras o frases desconocidas según los datos de entrenamiento de intents y entradas circundantes, como elementos que se pueden agregar a una lista de compras.
- Las expresiones regulares permiten que el tipo haga coincidir los valores con patrones de expresiones regulares basados en el estándar RE2 de Google.
- Texto de formato libre permite que el tipo coincida con todo lo que diga un usuario. La anotación de un intent con este tipo te permite consumir todas las entradas como un parámetro que puedes canalizar a tu propia CLN.
Tipos de sistemas
Los tipos de sistema te permiten anotar y extraer datos conocidos de la entrada del usuario mediante valores y datos de entrenamiento proporcionados por el sistema. Se admiten los siguientes tipos de sistema:
Tipo | Descripción |
---|---|
actions.type.DateTime |
Contiene la fecha, la hora y la zona horaria según la configuración del dispositivo del usuario. Está disponible para llenado de ranuras y anotación de frases de entrenamiento. |
actions.type.Date |
Solo contiene la fecha. Disponible solo para el llenado de ranuras. |
actions.type.Time |
Solo contiene la hora. Disponible solo para el llenado de ranuras. |
actions.type.Number |
El tipo Number coincide con números ordinales y cardinales. |
Uso de DateTime
, Date
y Time
Estos tipos se comportan de manera diferente según dónde uses el tipo y la entrada del usuario que coincida.
Cómo usar con intents
La anotación de frases de entrenamiento en intents solo admite el tipo DateTime
. No es necesario que la entrada del usuario coincida con un valor DateTime
completo. Por ejemplo, si un usuario solo proporciona el año, el parámetro de sesión podría verse así:
"date_time": {
"year": 2019
}
Uso con llenado de ranuras
El llenado de ranuras es compatible con DateTime
, Date
y Time
.
- Si el tipo de espacio es
DateTime
, Asistente le solicita al usuario hasta que se proporciona un valor completo. - Si el tipo de horario es
Date
, Asistente le pide al usuario que proporcione un valor de fecha. Cuando se recopila, el parámetro que recibes es unDateTime
completo con el tiempo establecido en 00:00. - Si el tipo de ranura es
Time
, Asistente le solicitará al usuario un valor de tiempo. Cuando se recopila, el parámetro que recibes es un objetoDateTime
completo con la fecha establecida en la fecha actual.
Por ejemplo, supongamos que un usuario en Los Ángeles dijo: "Hey Google, crea un recordatorio para el 15 de enero de 2024 a las 8 p.m.". Cuando se extrae DateTime
como parte de un proceso de llenado de ranuras, el parámetro completo puede verse de la siguiente manera:
"date_time": {
"day": 15,
"hours": 20,
"minutes": 0,
"month": 1,
"nanos": 0,
"seconds": 0,
"time_zone": {
"id": "America/Los_Angeles"
},
"year": 2024
}
Uso con condiciones
Las condiciones solo permiten el uso de números y strings, por lo que usar el parámetro de nivel superior DateTime
genera un resultado False para la condición. Por ejemplo:
$session.params.my_dateTime.day > 5
es una condición válida porque el valorday
es un número y es compatible.$session.params.my_dateTime > "01-01-2010"
es una condición no válida, ya que el objeto “DateTime” de nivel superior no es un número ni una string.
Anulaciones del tipo de entorno de ejecución
Las anulaciones de tipo de entorno de ejecución te permiten crear o modificar tipos de forma dinámica en la entrega. Esta función te permite agregar o reemplazar la especificación de un tipo durante el tiempo de ejecución. Por ejemplo, puedes verificar una fuente de datos de backend para cargar elementos de menú diarios en un tipo en la entrega.
Consulta la guía de webhooks para obtener más información sobre cómo compilar anulaciones de tipo.