Tipos
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Los tipos te permiten configurar la CLN (comprensión del lenguaje natural) de Asistente
para extraer datos estructurados
de las entradas del usuario. Tú
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 CLN
lo extrae como un parámetro escrito para que puedas procesarlo en una escena.
Dentro de la etapa de llenado de ranuras de una escena, puedes especificar
en varios espacios que se recomienda que proporcione el usuario
hacer una transición o salir de escena.
Dentro de la etapa conditions de una escena, puedes basar
lógica sobre 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
asignar un conjunto de valores a una sola clave. Puedes especificar tipos en una variedad de
maneras:
- Las palabras y los sinónimos permiten asignar múltiples valores a una sola clave,
que se denominan entrada. Tu tipo puede contener una o varias entradas. Si
Si eliges esta opción, también puedes habilitar la siguiente configuración de CLN:
- Habilitar coincidencia parcial: Esta función permite entradas con más de un elemento.
palabra con la que debe coincidir, aun cuando las palabras se pronuncien en un orden diferente.
- Aceptar valores desconocidos: Si no puedes especificar todos los valores posibles, el
El procesador de idiomas puede aceptar palabras o frases desconocidas según el entorno
datos de entrenamiento de entradas e intents, como artículos que se podrían agregar a una tienda de comestibles
lista.
- Las expresiones regulares permiten que el tipo coincida con los valores mediante las expresiones regulares
patrones de expresión basados en
Estándar RE2 de Google.
- El texto en formato libre permite que el tipo coincida.
todo lo que diga un usuario. Anotación
un intent de este tipo te permite consumir todas las entradas como un parámetro que
puede canalizarse a tu propia CLN.
Tipos de sistemas
Los tipos de sistema te permiten anotar y extraer datos conocidos de las entradas del usuario
con valores y datos
de entrenamiento proporcionados por el sistema. Los siguientes tipos de sistemas son
compatibles:
Tipo |
Descripción |
actions.type.DateTime |
Contiene la fecha, la hora y la zona horaria en función de la configuración del dispositivo del usuario.
Está disponible para el relleno de ranuras y la anotación de frases de entrenamiento.
|
actions.type.Date |
Contiene solo la fecha. Disponible solo para llenar ranuras. |
actions.type.Time |
Contiene solo la hora. Disponible solo para llenar ranuras. |
actions.type.Number |
El tipo Number coincide con el ordinal y el cardinal
y números de serie. |
Uso de DateTime
, Date
y Time
Estos tipos se comportan de manera diferente según dónde los uses y la
la entrada del usuario que coincida con el tipo.
Uso con intents
La anotación de frases de entrenamiento en intents solo admite el tipo DateTime
. Usuario
no es necesario que la entrada 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
}
Usa el relleno de ranuras
El relleno de ranuras admite DateTime
, Date
y Time
.
- Si el tipo de ranura es
DateTime
, el Asistente le pide al usuario que se active
se proporciona un valor predeterminado.
- Si el tipo de horario es
Date
, Asistente le solicita al usuario una fecha hasta esa fecha.
se proporciona un valor predeterminado. Cuando se recopila, el parámetro que recibes es un valor
DateTime
con la hora establecida en 00:00
- Si el tipo de horario es
Time
, Asistente le solicita al usuario una hora
se proporciona un valor predeterminado. Cuando se recopila, el parámetro que recibes es un valor
Un objeto DateTime
con la fecha establecida en la fecha actual.
Por ejemplo, supongamos que un usuario de Los Ángeles dice: "Hey Google, crea un recordatorio
para el 15 de enero de 2024 a las 8 p.m.". Cuando se extrae DateTime
como parte de una ranura
de relleno, 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
}
Usa con condiciones
Las condiciones solo permiten el uso de números y cadenas, por lo que usar el nivel superior
El parámetro DateTime
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 la
El valor day
es un número y se admite.
$session.params.my_dateTime > "01-01-2010"
es una condición no válida porque
el nivel superior "DateTime" no es un número o una cadena.
Anulaciones del tipo de entorno de ejecución
Las anulaciones de tipos de entorno de ejecución te permiten crear o modificar tipos de forma dinámica
la entrega de datos. Esta función te permite agregar o reemplazar la especificación de un tipo en
tiempo de ejecución. Por ejemplo, puedes verificar una fuente de datos de backend para cargar el menú diario
en un tipo de tu entrega.
Consulta la guía de webhooks para obtener más información.
sobre cómo crear anulaciones de tipo.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-07-26 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-07-26 (UTC)"],[[["\u003cp\u003eTypes are used to extract structured data from user input, allowing you to create slots in intents, manage slot filling within scenes, and define conditions based on parameter values.\u003c/p\u003e\n"],["\u003cp\u003eYou can create custom types using words and synonyms, regular expressions, or free-form text to define how the NLU interprets user input.\u003c/p\u003e\n"],["\u003cp\u003eSystem types such as \u003ccode\u003eDateTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e, \u003ccode\u003eTime\u003c/code\u003e, and \u003ccode\u003eNumber\u003c/code\u003e provide built-in data extraction for common data formats.\u003c/p\u003e\n"],["\u003cp\u003eRuntime type overrides enable dynamic modification of types during fulfillment, allowing you to adjust types based on real-time data.\u003c/p\u003e\n"]]],[],null,["# Types let you configure the Assistant NLU (natural language understanding)\nengine to extract structured data from user input. You\ncan use types in the following situations:\n\n- In [intents](/assistant/conversational/intents), you can annotate training phrases with types to\n create slots. When users say something that matches a slot, the NLU engine\n extracts it as a typed parameter, so you can process it in a [scene](/assistant/conversational/scenes).\n\n- Within a scene's [slot filling](/assistant/conversational/scenes#slot_filling) stage, you can specify\n multiple slots that you want the user to provide before they can\n transition or exit out of the scene.\n\n- Within a scene's [conditions](/assistant/conversational/scenes#conditions) stage, you can base\n logic on whether a parameter has a specific value that's defined in a type.\n\nCustom types\n------------\n\nCustom types let you create your own type specification to notify the NLU to\nassign a set of values to a single key. You can specify types in a variety of\nways:\n\n- **Words and synonyms** allow you to map multiple values to a single key, which are called an entry. Your type can contain one or many entries. If you choose this option, you can also enable the following NLU settings:\n - **Enable fuzzy matching** - This feature allows entries with more than one word to be matched, even when the words are spoken in a different order.\n - **Accept unknown values** - When you can't specify all possible values, the language processor can accept unknown words or phrases based on surrounding input and intent training data, such as items that might be added to a grocery list.\n- **Regular expressions** allows the type to match values using regular expression patterns based on [Google's RE2 standard](https://github.com/google/re2/wiki/Syntax).\n- **Free form text** allows the type to match anything a user says. Annotating an intent with this type lets you consume all input as a parameter that you can pipe to your own NLU.\n\nSystem types\n------------\n\nSystem types let you annotate and extract well-known data from user input\nusing system-provided training data and values. The following system types are\nsupported:\n\n| Type | Description |\n|-----------------------------|-----------------------------------------------------------------------------------------------------------------------------------|\n| **`actions.type.DateTime`** | Contains date, time, and timezone based on the user's device settings. Available for slot filling and training phrase annotation. |\n| **`actions.type.Date`** | Contains date only. Available for slot filling only. |\n| **`actions.type.Time`** | Contains time only. Available for slot filling only. |\n| **`actions.type.Number`** | The `Number` type matches ordinal and cardinal numbers. |\n\n### `DateTime`, `Date`, and `Time` usage\n\nThese types behave differently depending on where you use the type and the\nuser input that matches the type.\n\n#### Using with intents\n\nAnnotating training phrases in intents supports only the `DateTime` type. User\ninput doesn't need to match an entire `DateTime` value. For example, if a user\nprovides only the year, the session parameter might look like this: \n\n \"date_time\": {\n \"year\": 2019\n }\n\n#### Using with slot filling\n\nSlot filling supports `DateTime`, `Date`, and `Time`.\n\n- If the slot type is `DateTime`, the Assistant prompts the user until a full value is provided.\n- If the slot type is `Date`, the Assistant prompts the user until a date value is provided. When collected, the parameter you receive is a full `DateTime` with the time set to 00:00.\n- If the slot type is `Time`, the Assistant prompts the user until a time value is provided. When collected, the parameter your receive is a full `DateTime` object with the date set to the current date.\n\nFor example, suppose a user in Los Angeles said, \"Hey Google, create a reminder\nfor January 15, 2024 at 8 pm.\" When `DateTime` is extracted as part of a slot\nfilling process, the full parameter might look like this: \n\n \"date_time\": {\n \"day\": 15,\n \"hours\": 20,\n \"minutes\": 0,\n \"month\": 1,\n \"nanos\": 0,\n \"seconds\": 0,\n \"time_zone\": {\n \"id\": \"America/Los_Angeles\"\n },\n \"year\": 2024\n }\n\n#### Using with conditions\n\nConditions only allow the use of numbers and strings, so using the top level\n`DateTime` parameter results in a **False** result for the condition. For\nexample:\n\n- `$session.params.my_dateTime.day \u003e 5` is a valid condition, because the `day` value is a number and is supported.\n- `$session.params.my_dateTime \u003e \"01-01-2010\"` is an invalid condition, because the top level 'DateTime' object is not a number or string.\n\nRuntime type overrides\n----------------------\n\nRuntime type overrides let you dynamically create or modify types in\nfulfillment. This feature lets you add to or replace a type's specification at\nruntime. For example, you can check a backend data source to load daily menu\nitems into a type in your fulfillment.\n\nSee the [webhooks](/assistant/conversational/webhooks#runtime_type_overrides) guide for more information\non how to build type overrides."]]