Azioni e parametri

Questa pagina descrive le impostazioni di azioni e parametri per gli intenti e come vengono utilizzati quando gli intenti vengono abbinati in fase di esecuzione.

Dove trovare questi dati

Quando crei un agente, è più comune utilizzare la console Dialogflow ES (visita la documentazione, apri la console). Le istruzioni riportate di seguito riguardano l'utilizzo della console. Per accedere ai dati delle azioni e dei parametri:

  1. Vai alla console Dialogflow ES.
  2. Seleziona un agente.
  3. Seleziona Intenti nel menu della barra laterale a sinistra.
  4. Seleziona un'intenzione.
  5. Scorri verso il basso fino alla sezione Azioni e parametri.

Screenshot dei campi di azioni e parametri

Se stai creando un agente utilizzando l'API anziché la console, consulta il riferimento Intent. I nomi dei campi dell'API sono simili a quelli della console. Le istruzioni riportate di seguito mettono in evidenza eventuali differenze importanti tra la console e l'API.

Azioni

Il campo action è un semplice campo di praticità che consente di eseguire la logica nel servizio.

Quando crei un agente, puoi impostare questo campo su qualsiasi testo che ritieni utile.

Quando un'intenzione viene associata in fase di esecuzione, Dialogflow fornisce il valore dell'azione alla richiesta webhook di adempimento o alla risposta all'interazione dell'API. Può essere utilizzato per attivare una logica specifica nel servizio.

Parametri

Quando un'intenzione viene associata in fase di esecuzione, Dialogflow fornisce i valori estratti dall'espressione dell'utente finale come parametri. Ogni parametro ha un tipo, chiamato tipo di entità, che determina esattamente come vengono estratti i dati. A differenza dell'input utente finale non elaborato, i parametri sono dati strutturati che possono essere facilmente utilizzati per eseguire alcune operazioni logiche o generare risposte.

Quando crei un agente, controlla la modalità di estrazione dei dati annotando parti delle frasi di addestramento e configurando i parametri associati.

L'elenco seguente mostra i campi di una configurazione del parametro. Vengono mostrati esempi per la frase di addestramento "prenota una camera per martedì", dove "martedì" è annotato.

  • Obbligatorio: seleziona questa casella se il parametro è necessario per completare l'intent. Consulta la sezione Completamento degli slot con i parametri obbligatori di seguito.
  • Nome parametro: un nome che identifica il parametro. Esempio: date.
  • Entità: Il tipo di entità associato al parametro. Esempio: @sys.date.
  • Valore: nella maggior parte dei casi, questo valore è impostato su un riferimento a parametro come $parameter-name, che viene utilizzato come segnaposto per il valore estratto in fase di esecuzione. Tuttavia, questo campo può essere utilizzato anche per selezionare valori alternativi. Consulta la sezione Valori e riferimenti dei parametri di seguito. Esempio: $date.
  • È elenco: seleziona questa casella se i valori devono essere restituiti come elenco. Consulta la sezione Parametri dell'elenco di seguito.
  • Prompt: domande che l'agente porrà all'utente finale se questo parametro non è stato fornito. Questo campo viene utilizzato solo se è selezionato il campo Obbligatorio. Consulta la sezione Completamento degli slot con i parametri obbligatori di seguito.
  • Valore predefinito: si tratta del valore predefinito per il parametro quando l'utente finale non ne specifica uno. Per modificare il valore predefinito con la console, devi passare il mouse sopra la riga del parametro e fare clic sul menu a destra.

Quando un'intenzione viene associata a runtime, Dialogflow fornisce i dati dei parametri alla richiesta webhook di adempimento o alla risposta all'interazione con l'API. Questi vengono forniti come mappatura dai nomi dei parametri ai valori dei parametri.

Quando crei un agente, le tue risposte possono includere valori di parametro. Consulta Valori e riferimenti dei parametri di seguito.

Parametri dell'elenco

Quando crei un agente con la console, se selezioni l'opzione È elenco, il parametro viene configurato come elenco. Gli elenchi possono contenere più elementi. Ad esempio, un agente di ordinazione di prodotti potrebbe aspettarsi le seguenti espressioni dell'utente finale:

  • "Voglio mele"
  • "Voglio mele e arance"
  • "Voglio mele, arance e banane"

Quando annoti le frasi di addestramento con i parametri di elenco, le frasi possono contenere uno o più esempi di parametri, e devi annotare ciascuno separatamente:

Screenshot dell'annotazione del parametro dell'elenco.

Dopo aver annotato almeno due parole o frasi con lo stesso parametro in una singola frase di addestramento, l'opzione È elenco viene attivata automaticamente. Se disattivi questa opzione, ma mantieni la stessa annotazione, È elenco verrà selezionata di nuovo automaticamente quando apri la pagina con questa annotazione.

Negli agenti multilingue, l'opzione È elenco non è specifica per lingua.

Valori e riferimenti dei parametri

I riferimenti ai parametri sono variabili che contengono i valori dei parametri estratti in fase di esecuzione. Quando crei un agente, puoi utilizzare i riferimenti ai parametri nelle risposte agli intent, nei prompt dei parametri e nel campo del parametro Valore.

Ad esempio, puoi utilizzare $parameter-name in una risposta all'intent. Quando Dialogflow risponde all'utente, sostituirà il riferimento al parametro con il valore parametro estratto in fase di runtime. Questo è utile per riepilogare le informazioni fornite dall'utente finale. Ad esempio, la risposta all'intent potrebbe essere simile alla seguente: "Ok, ho prenotato una camera per te il giorno $date".

Riferimento parametro di base

Per fare riferimento a un valore parametro estratto dall'entità associata, utilizza il seguente formato:

$parameter-name

Ad esempio, se il nome del parametro è date, puoi fare riferimento a $date.

Riferimento parametro per un valore originale

Quando il testo viene associato a una determinata entità, spesso viene convertito in un testo più pratico per l'elaborazione. Ad esempio, la parola "mele" in un'espressione dell'utente finale può essere estratta come "mela" per un'entità di frutta. Per fare riferimento a un valore parametro esattamente come è stato scritto o pronunciato dall'utente finale, utilizza il seguente formato:

$parameter-name.original

Ad esempio, se il nome del parametro è date, puoi fare riferimento al valore originale come $date.original.

Riferimento parametro per date ambigue

Quando un parametro è associato all'entità di sistema @sys.date e l'utente finale fornisce una data parziale (senza specificare mese, giorno e anno), Dialogflow corrisponderà alla data più vicina nel futuro. Tuttavia, puoi anche recuperare le varianti di questa data.

Puoi recuperare la corrispondenza parziale esplicita, dove Dialogflow sostituisce la parte sconosciuta con Us utilizzando il seguente formato:

$parameter-name.partial

Puoi recuperare la data più vicina nel passato utilizzando il seguente formato:

$parameter-name.recent

Ad esempio, se la data odierna è l'11 agosto 2021, il nome del parametro è date e l'utente dice "13 agosto":

Riferimento parametro Valore risolto
$date 2021-08-13
$date.partial UUUU-08-13
$date.recent 2020-08-13

Riferimento parametro per un'entità composita

Le entità composite sono entità che contengono altre entità secondarie. Per fare riferimento al valore della sottoentità di un parametro, utilizza il seguente formato:

$parameter-name.sub-entity-name

Ad esempio, se il nome del parametro è move e il nome della entità secondaria è direction, puoi fare riferimento al valore dell'entità secondaria come $move.direction.

Riferimento parametro per un contesto attivo

I contesti possono fungere da spazio di archiviazione temporaneo per i valori dei parametri. Per fare riferimento a un valore parametro ottenuto da un contesto attivo, utilizza il seguente formato:

#context-name.parameter-name

Ad esempio, se il nome del parametro è room e reservation è un contesto attivo, puoi fare riferimento al valore parametro come #reservation.room.

Riferimento parametro per un parametro evento

Per fare riferimento a un parametro evento, utilizza il seguente formato:

#event-name.parameter-name

Ad esempio, se il nome del parametro è duration e il nome dell'evento è alarm, puoi fare riferimento al parametro evento come #alarm.duration.

Campo Valore parametro

I riferimenti ai parametri nel campo Valore del parametro hanno un significato speciale. I contenuti di questo campo determinano il valore risolto per$parameter-name nelle risposte all'intent e nei prompt dei parametri. Dialogflow elabora i dati dei parametri nel seguente ordine:

  1. Estrai il valore parametro dall'espressione dell'utente finale utilizzando l'entità associata.
  2. Risolvi i contenuti per il campo del parametro Valore.
  3. Imposta $parameter-name sui contenuti risolti del campo del parametro Valore. Se il campo Valore non è impostato su $parameter-name, viene reimpostato il valore di $parameter-name su un altro valore.
  4. Risolvi i contenuti per le risposte all'intent e i prompt dei parametri.

Ecco alcuni esempi per illustrare gli effetti di questo ordinamento per un'espressione dell'utente finale del tipo "Voglio acquistare una camicia snella".

Posizione del riferimento del parametro Contenuti configurati Contenuti risolti
Campo Valore parametro $size S
Risposta all'intent Hai scelto la taglia: $size Hai scelto la taglia: S
Posizione del riferimento del parametro Contenuti configurati Contenuti risolti
Campo Valore parametro $size.original small
Risposta all'intent Hai scelto la taglia: $size Hai scelto la taglia: piccola
Posizione del riferimento del parametro Contenuti configurati Contenuti risolti
Campo Valore parametro $size S
Risposta all'intent Hai scelto la dimensione: $size.original Hai scelto la taglia: piccola

Riempimento degli slot con i parametri obbligatori

Quando crei un agente, puoi contrassegnare i parametri come obbligatori. Un'intenzione non è completata fino a quando l'utente finale non ha fornito i dati per ciascuno di questi parametri obbligatori.

Screenshot dei campi dei parametri obbligatori

Quando un'intenzione viene associata in fase di esecuzione, l'agente Dialogflow continua a raccogliere informazioni dall'utente finale fino a quando l'utente finale non ha fornito i dati per ciascuno dei parametri richiesti. Questa procedura è chiamata compilazione degli slot.

Dialogflow non invia una richiesta di webhook per l'evasione fino a quando non ha raccolto tutti i dati richiesti dall'utente finale, a meno che non sia attivato il webhook per il completamento degli slot.

Dialogflow invia una risposta di interazione con l'API per ogni passaggio di compilazione dello slot. Per ciascuna di queste risposte di completamento dello slot, lo scopo e l'azione saranno gli stessi e verranno forniti i parametri raccolti fino a quel momento.

Quando crei un agente, fornisci i prompt che l'agente utilizzerà per ottenere i dati dei parametri dall'utente finale. Puoi anche fornire varianti del prompt, in modo che l'agente non ponga sempre la stessa domanda.

Screenshot dei prompt dei parametri

Ad esempio, supponiamo che l'agente del tuo negozio di abbigliamento abbia un'intenzione con i parametri obbligatori per:

  • tipo di indumento
  • quantity
  • dimensioni
  • color

La compilazione di un'intenzione potrebbe avere il seguente aspetto:

Utente: vorrei acquistare una t-shirt.
Agente: quanti ne vuoi?
Utente: 3
Agente: di che colore vuoi il prodotto?
Utente: Nero
Agente: Che taglia?
Utente: M
Agente: OK, tre t-shirt nere taglia M

Se l'utente finale fornisce dati per più di un parametro in una singola espressione, Dialogflow raccoglie i dati forniti e continua a chiedere i dati mancanti. Ad esempio, l'utente finale potrebbe dire "Vorrei acquistare tre t-shirt nere". Dialogflow chiederà all'utente le dimensioni.

Parametri di ordinamento

Quando crei un agente, puoi ordinare i parametri, che determinano l'ordine in cui l'agente chiederà all'utente finale i dati mancanti.

Quando crei un agente dalla console, se passi il mouse sopra un parametro viene visualizzata un'icona di ordinamento a destra. Puoi trascinare questa icona per modificare la posizione del parametro nell'elenco.

Riferimenti ai parametri nei prompt

Quando crei un agente, puoi utilizzare i riferimenti ai parametri nei prompt, ma solo per i parametri obbligatori prima del prompt. Ad esempio, se il parametro color è prima del parametro quantity, puoi utilizzare il seguente prompt per il parametro quantity: How many $color t-shirts would you like to buy?

Annullare il riempimento degli spazi

Quando l'utente finale dice una frase di uscita come "Annulla", "Basta", "Bene" e così via, l'agente risponde con "Ok, annullato" e cancella i contesti di compilazione degli slot.

Se utilizzi l'API, il campo DetectIntentResponse.queryResult.cancelsSlotFilling viene impostato su true quando l'inserimento degli slot viene annullato. Per saperne di più, consulta la documentazione detectIntent del tipo Sessions.