Ora che hai l'entità della sequenza, puoi creare gli intent per raccogliere la sequenza dall'utente finale. Ti consigliamo di avere almeno tre intent con queste responsabilità:
- Un intento principale "Sequenza"
- Intercetta gli enunciati per avviare la raccolta di sequenze.
- Richiamato da eventi di follow-up per continuare ad acquisire sequenze finché l'utente finale non dice di aver finito.
- Un intent contestuale "Sequence - Edit"
- Rileva gli enunciati per correggere l'ultima sequenza raccolta.
- Torna in modo programmatico all'intent "Sequence" per raccogliere la sequenza corretta.
- Un intent contestuale "Sequence - Done"
- Rileva gli enunciati che indicano che la sequenza è completa.
Nella sezione successiva vedrai come il webhook collegherà tutti questi elementi, ma prima configuriamo gli intent.
Crea l'intent "Sequence"
Questo è lo scopo principale della raccolta di sequenze. Configuralo in questo modo:
- Lascia vuoti i contesti di input in modo che gli utenti finali possano attivare questo intent all'inizio della chiamata.
- Aggiungi un contesto di output "collecting-sequence". Utilizzeremo questo contesto per attivare gli intent di correzione e completamento durante il flusso.
- Aggiungi un contesto di output "editing-sequence" e imposta la durata su 0. Attiveremo questo contesto con una durata dall'intent "Sequence - Edit" nella sezione successiva ed è importante cancellare questo contesto qui in modo che il contesto "editing-sequence" sia attivo solo immediatamente dopo l'attivazione dell'intent "Edit".
Aggiungi un evento "continue-sequence" in modo che il webhook possa eseguire il loop di questo intent per raccogliere tutte le sequenze parziali.

Aggiungi frasi di addestramento in modo che l'utente finale possa attivare questo intent per avviare il flusso. Questo esempio utilizza frasi come "qual è lo stato del mio ordine", "traccia il mio ordine", "dov'è il mio ordine" e così via.
Aggiungi un nome di azione "handle-sequence" in modo che il webhook sappia quando attivarsi. Il codice del webhook verrà creato nella sezione successiva di questo tutorial, dopo aver configurato tutti gli intent.
Aggiungi un parametro obbligatorio "new_sequence" utilizzando l'entità regexp creata per raccogliere sequenze parziali nella sezione precedente. Imposta il tipo di entità su "@alphanumeric" e il valore su "$new_sequence".
Aggiungi un parametro facoltativo "existing_sequence" con il valore "#continue-sequence.existing_sequence" per estrarre la nuova sequenza esistente dall'evento. Puoi lasciare vuoto il tipo di entità.
Aggiungi un parametro facoltativo "previous_sequence" con il valore "#continue-sequence.previous_sequence" per estrarre la sequenza precedente dall'evento. Puoi lasciare vuoto il tipo di entità.
Abilita chiamata webhook per questo intent e Chiamata webhook per compilazione slot.

Crea l'intent "Sequence - Edit"
Questo intent ascolta le espressioni che indicano che la sequenza precedente è stata interpretata in modo errato dall'agente. Configuralo in questo modo:
- Aggiungi un contesto di input "collecting-sequence" in modo che questo intent venga chiamato solo quando ci troviamo nel mezzo del flusso della sequenza. Questo è lo stesso contesto attivato dall'intent "Sequence".
- Aggiungi un contesto di output "editing-sequence" a cui il nostro webhook di fulfillment possa fare riferimento. Quando questo intent viene attivato, il webhook rimanda Dialogflow all'intent principale "Sequence" per raccogliere la sequenza successiva. Il webhook per la compilazione degli slot dell'intent "Sequence" verificherà la presenza di un contesto "editing-sequence" attivo per fornire all'utente finale una risposta "Riprova" comprensiva.
Aggiungi frasi di addestramento come "no", "non è corretto" e così via.

Aggiungi il nome dell'azione "handle-sequence". Questa è la stessa azione dell'intent "Sequence", quindi possiamo riutilizzare la stessa logica del webhook.
Aggiungi un parametro "new_sequence" con il valore "#collecting-sequence.previous_sequence" per estrarre la sequenza precedente dal contesto, annullando di fatto l'ultimo enunciato. Qui non aggiungiamo un parametro "existing_sequence" in modo che il webhook sovrascriva la sequenza esistente con quella precedente.
Abilita chiamata webhook per questo intent.

Crea un intent "Sequence - Done".
- Aggiungi un contesto di input "collecting-sequence"
- Aggiungi un contesto di output "collecting-sequence" e imposta la durata su 0 per cancellare il contesto. La cancellazione impedisce l'attivazione degli intent "Modifica" e "Fine" ora che l'agente ha terminato la raccolta della sequenza.
Aggiungi frasi di addestramento come "fatto", "tutto fatto" e così via.

Aggiungi un parametro "sequence" con valore "#collecting-sequence.existing_sequence" per estrarre la sequenza finale dal contesto.
Abilita chiamata webhook per questo intent.

Collega gli intent tramite webhook
Ora hai tutto ciò che ti serve per programmare la logica di questi intent. Nella sezione successiva, vedrai come programmare il webhook per utilizzare tutti questi contesti, azioni, parametri ed eventi per completare il flusso di convalida della sequenza.