Tipos

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 una DateTime 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 objeto DateTime 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 valor day 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.