I tipi consentono di configurare il motore NLU (Comprensione del linguaggio naturale) dell'assistente in modo da estrarre i dati strutturati dall'input utente. Puoi utilizzare i tipi nelle seguenti situazioni:
Negli intent, puoi annotare le frasi di addestramento con i tipi per creare slot. Quando gli utenti dicono qualcosa che corrisponde a uno slot, il motore NLU la estrae come parametro digitato, in modo che tu possa elaborarlo in una scena.
All'interno dello stage di riempimento degli slot di una scena, puoi specificare più slot che vuoi che l'utente fornisca prima di eseguire la transizione o l'uscita dalla scena.
All'interno dello stage delle conditions di una scena, puoi basare la logica se un parametro ha un valore specifico definito in un tipo.
Tipi personalizzati
I tipi personalizzati consentono di creare la tua specifica dei tipi per notificare all'NLU di assegnare un insieme di valori a una singola chiave. Puoi specificare i tipi in vari modi:
- Parole e sinonimi ti consentono di mappare più valori a una singola chiave, chiamata voce. Il tipo può contenere una o più voci. Se scegli questa opzione, puoi anche abilitare le seguenti impostazioni NLU:
- Abilita corrispondenza parziale: questa funzionalità consente la corrispondenza delle voci con più di una parola, anche quando le parole vengono pronunciate in un ordine diverso.
- Accetta valori sconosciuti: quando non è possibile specificare tutti i possibili valori, il processore linguistico può accettare parole o frasi sconosciute basate sui dati di addestramento degli input e degli intent circostanti, ad esempio gli articoli che potrebbero essere aggiunti a una lista della spesa.
- Le espressioni regolari consentono al tipo di trovare corrispondenze con i valori utilizzando pattern di espressioni regolari basati sullo standard RE2 di Google.
- Testo in formato libero consente al tipo di corrispondere a tutto ciò che dice l'utente. L'annotazione di un intent con questo tipo ti consente di consumare tutti gli input sotto forma di parametro che puoi eseguire con pipe alla tua NLU.
Tipi di impianto
I tipi di sistema ti consentono di annotare ed estrarre dati noti dall'input utente utilizzando dati e valori di addestramento forniti dal sistema. Sono supportati i seguenti tipi di sistema:
Tipo | Descrizione |
---|---|
actions.type.DateTime |
Contiene data, ora e fuso orario in base alle impostazioni del dispositivo dell'utente. Disponibile per il riempimento degli slot e l'annotazione della frase di addestramento. |
actions.type.Date |
Contiene solo la data. Disponibile solo per il riempimento degli slot. |
actions.type.Time |
Contiene solo l'ora. Disponibile solo per il riempimento degli slot. |
actions.type.Number |
Il tipo Number corrisponde ai numeri ordinali e cardinali. |
Utilizzo di DateTime
, Date
e Time
Questi tipi si comportano in modo diverso a seconda di dove utilizzi il tipo e l'input utente corrispondente.
Utilizzo con intent
L'annotazione delle frasi di addestramento negli intent supporta solo il tipo DateTime
. L'input
dell'utente non deve necessariamente corrispondere a un intero valore DateTime
. Ad esempio, se un utente indica solo l'anno, il parametro sessione potrebbe avere il seguente aspetto:
"date_time": {
"year": 2019
}
Utilizzo con riempimento degli slot
La compilazione degli slot supporta i criteri DateTime
, Date
e Time
.
- Se il tipo di area annuncio è
DateTime
, l'assistente chiede all'utente finché non viene fornito un valore completo. - Se il tipo di area annuncio è
Date
, l'assistente chiede all'utente fino a quando non viene fornito un valore di data. Una volta raccolto, il parametro che ricevi è unDateTime
completo con tempo impostato su 00:00. - Se il tipo di area è
Time
, l'assistente chiede all'utente fino a quando non viene fornito un valore di tempo. Quando viene raccolto, il parametro che ricevi è un oggettoDateTime
completo con la data impostata sulla data corrente.
Ad esempio, supponiamo che un utente di Los Angeles abbia detto "Hey Google, crea un promemoria
per il 15 gennaio 2024 alle 20:00". Quando DateTime
viene estratto nell'ambito di un processo di
riempimento delle aree annuncio, 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 l'uso del parametro DateTime
di primo livello genera un risultato False per la condizione. Ad
esempio:
$session.params.my_dateTime.day > 5
è una condizione valida, perché il valoreday
è un numero ed è supportato.$session.params.my_dateTime > "01-01-2010"
non è una condizione non valida, perché l'oggetto "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à consente di aggiungere o sostituire la specifica di un tipo in fase di runtime. Ad esempio, puoi controllare un'origine dati backend per caricare voci di menu giornaliere in un tipo di fulfillment.
Per ulteriori informazioni su come creare override dei tipi, consulta la guida sui webhook.