Tipi
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
I tipi ti consentono di configurare la comprensione del linguaggio naturale (NLU) dell'assistente
di ricerca per estrarre dati strutturati dall'input dell'utente. Tu
possono utilizzare i tipi nelle seguenti situazioni:
Negli intent, puoi annotare le frasi di addestramento con tipi per
e creare slot. Quando gli utenti dicono qualcosa che corrisponde a uno slot, il motore NLU
lo estrae come parametro digitato, in modo da poterlo elaborare in una scena.
All'interno della fase di riempimento degli spazi di una scena, puoi specificare
più slot che l'utente deve fornire prima di poter
una transizione o uscire dalla scena.
All'interno della fase relativa alle condizioni di una scena, puoi basare
indica se un parametro ha un valore specifico definito in un tipo.
Tipi personalizzati
I tipi personalizzati consentono di creare la tua specifica del tipo per notificare all'NLU
e assegnare un insieme di valori
a una singola chiave. Puoi specificare i tipi in diverse
modi:
- Parole e sinonimi ti consentono di mappare più valori a una singola chiave.
che prendono il nome di voci. Il tipo può contenere una o più voci. Se
Scegli questa opzione, puoi anche abilitare le seguenti impostazioni NLU:
- Attiva corrispondenza parziale: questa funzionalità consente le voci con più di una
parole da abbinare, anche quando le parole vengono pronunciate in un ordine diverso.
- Accetta valori sconosciuti: quando non puoi specificare tutti i valori possibili,
processore di linguaggio può accettare parole o frasi sconosciute in base ai
di input e dati di addestramento per intent, ad esempio gli articoli che potrebbero essere aggiunti a un
dall'elenco di lettura.
- Le espressioni regolari consentono al tipo di trovare corrispondenze con i valori utilizzando
di espressione in base a
Standard RE2 di Google.
- Testo in formato libero consente la corrispondenza del tipo
di qualsiasi cosa dica un utente. Annotazione
un intent con questo tipo ti consente di utilizzare tutti gli input come parametro
che può indirizzare alla tua NLU.
Tipi di sistema
I tipi di sistema ti consentono di annotare ed estrarre dati noti dall'input utente
utilizzando dati e valori di addestramento forniti dal sistema. I seguenti tipi di impianto sono
supportati:
Tipo |
Descrizione |
actions.type.DateTime |
Contiene data, ora e fuso orario in base alle impostazioni del dispositivo dell'utente.
Disponibile per la compilazione degli slot e l'annotazione della frase di addestramento.
|
actions.type.Date |
Contiene solo la data. Disponibile solo per la compilazione degli slot. |
actions.type.Time |
Contiene solo il tempo. Disponibile solo per la compilazione degli slot. |
actions.type.Number |
Il tipo Number corrisponde a ordinale e cardinale
numeri. |
Utilizzo di DateTime
, Date
e Time
Questi tipi si comportano diversamente a seconda di dove utilizzi il tipo e
input utente corrispondente al tipo.
Utilizzo con intent
L'annotazione delle frasi di addestramento negli intent supporta solo il tipo DateTime
. Utente
l'input non deve necessariamente corrispondere a un intero valore DateTime
. Ad esempio, se un utente
indica solo l'anno, il parametro di sessione potrebbe avere il seguente aspetto:
"date_time": {
"year": 2019
}
Utilizzo con riempimento degli slot
La compilazione degli slot supporta DateTime
, Date
e Time
.
- Se il tipo di slot è
DateTime
, l'assistente chiede all'utente fino a quando
viene specificato.
- Se il tipo di slot è
Date
, l'assistente chiede all'utente fino a una data
viene specificato. Una volta raccolto, il parametro ricevuto è
DateTime
con l'ora impostata su 00:00.
- Se il tipo di slot è
Time
, l'assistente chiede all'utente fino a un momento
viene specificato. Una volta raccolto, il parametro ricevuto è
DateTime
oggetto con data impostata sulla data corrente.
Ad esempio, supponiamo che un utente a Roma abbia detto "Hey Google, crea un promemoria"
per il 15 gennaio 2024 alle 20:00". Quando DateTime
viene estratto all'interno di un'area
di riempimento, il parametro completo potrebbe avere il seguente aspetto:
"date_time": {
"day": 15,
"hours": 20,
"minutes": 0,
"month": 1,
"nanos": 0,
"seconds": 0,
"time_zone": {
"id": "America/Los_Angeles"
},
"year": 2024
}
Utilizzo con condizioni
Le condizioni consentono solo l'utilizzo di numeri e stringhe, quindi utilizzando le condizioni
Il parametro DateTime
restituisce un risultato False per la condizione. Ad
esempio:
$session.params.my_dateTime.day > 5
è una condizione valida, perché
Il valore di day
è un numero ed è supportato.
$session.params.my_dateTime > "01-01-2010"
è una condizione non valida perché
il parametro "DateTime" di primo livello non è un numero o una stringa.
Override dei tipi di runtime
Gli override dei tipi di runtime consentono di creare o modificare dinamicamente i tipi in
fulfillment. Questa funzionalità ti consente di aggiungere o sostituire le specifiche di un tipo in
runtime. Ad esempio, puoi controllare un'origine dati di backend per caricare il menu Giornaliero
articoli in un tipo nel tuo fulfillment.
Per ulteriori informazioni, consulta la guida relativa ai webhook
su come eseguire gli override dei tipi di build.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-07-26 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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."]]