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 intents, puedes anotar frases de entrenamiento con tipos para crear ranuras. Cuando los usuarios dicen algo que coincide con una ranura, el motor de 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 proporcione el usuario antes de que pueda hacer 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 al CLN a fin de que asigne 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 denominan 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 coincidan las 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 lenguaje puede aceptar palabras o frases desconocidas en función de la entrada circundante y los datos de entrenamiento de intents, como artículos que podrían agregarse a una lista de compras.
- Las expresiones regulares permiten que el tipo coincida con valores mediante patrones de expresión regulares basados en el estándar RE2 de Google.
- El texto de formato libre permite que el tipo coincida con lo que diga un usuario. Anotar 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 las entradas del usuario mediante el uso de datos y valores 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. Disponible para el relleno de ranuras y la anotación de frases de entrenamiento. |
actions.type.Date |
Solo contiene la fecha. Disponible solo para el relleno de espacios. |
actions.type.Time |
Contiene solo tiempo. Disponible solo para el relleno de espacios. |
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 con el tipo.
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 proporciona solo el año, el parámetro de sesión podría verse de la siguiente manera:
"date_time": {
"year": 2019
}
Cómo usar con el relleno de ranuras
El relleno de ranuras admite DateTime
, Date
y Time
.
- Si el tipo de ranura es
DateTime
, Asistente le preguntará al usuario hasta que se proporcione un valor completo. - Si el tipo de ranura es
Date
, Asistente le preguntará al usuario hasta que se proporcione un valor de fecha. Cuando se recopila, el parámetro que recibes es unaDateTime
completa con la hora configurada en 00:00. - Si el tipo de ranura es
Time
, Asistente le preguntará al usuario hasta que se proporcione 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 de 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 relleno de ranuras, el parámetro completo podría 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
}
Cómo usar con condiciones
Las condiciones solo permiten el uso de números y cadenas, de manera que el uso del parámetro DateTime
de nivel superior da como resultado 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 se admite.$session.params.my_dateTime > "01-01-2010"
no es una condición válida, ya que el objeto "DateTime" de nivel superior no es un número ni una cadena.
Anulaciones de tipos de entornos 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 en el tiempo de ejecución. Por ejemplo, puedes verificar una fuente de datos de backend para cargar elementos del menú diarios en un tipo en tu entrega.
Consulta la guía de webhooks para obtener más información sobre cómo compilar anulaciones de tipos.