Tipi

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 è un DateTime 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 oggetto DateTime 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 valore day è 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.