Ora che hai l'entità sequenza, puoi creare gli intent per raccogliere la sequenza dall'utente finale. Ti consigliamo di avere almeno tre intent con le seguenti responsabilità:
- Un intent principale "Sequenza"
- Rileva le espressioni per avviare la raccolta della sequenza.
- Viene richiamato dagli eventi di follow-up per continuare a acquisire le sequenze finché l'utente finale non indica di aver terminato.
- Un intent contestuale "Sequenza - Modifica"
- Rileva le espressioni per correggere l'ultima sequenza raccolta.
- Esegue un loop programmatico all'intent "Sequenza" per raccogliere la sequenza corretta.
- Un intent contestuale "Sequenza - Fine"
- Rileva le espressioni che indicano che la sequenza è completa.
Nella sezione successiva vedrai come il webhook collegherà tutti questi elementi, ma prima configuriamo gli intent.
Creare l'intent "Sequenza"
Questo è l'intent principale per la raccolta delle sequenze. Configuralo come segue:
- 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 abilitare 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 "Sequenza - Modifica" 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 "Modifica".
Aggiungi un evento "continue-sequence" in modo che il webhook possa eseguire un 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 azione "handle-sequence" in modo che il webhook sappia quando attivarsi. Coderai il webhook nella sezione successiva di questo tutorial, dopo aver configurato tutti gli intent.
Aggiungi un parametro obbligatorio "new_sequence" utilizzando l'entità regexp che hai creato per raccogliere le 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 la chiamata webhook per questo intent e la chiamata webhook per il riempimento degli slot.

Creare l'intent "Sequenza - Modifica"
Questo intent rileva le espressioni che indicano che l'agente non ha sentito bene la sequenza precedente. Configuralo come segue:
- Aggiungi un contesto di input "collecting-sequence" in modo che questo intent venga chiamato solo quando siamo nel mezzo del flusso della sequenza. Questo è lo stesso contesto attivato dall'intent "Sequenza".
- Aggiungi un contesto di output "editing-sequence" a cui il webhook di fulfillment può fare riferimento. Quando questo intent viene attivato, il webhook esegue un loop di Dialogflow all'intent "Sequenza" principale per raccogliere la sequenza successiva. Il webhook per il riempimento degli slot dell'intent "Sequenza" verificherà la presenza di un contesto "editing-sequence" attivo per fornire una risposta di "riprova" all'utente finale.
Aggiungi frasi di addestramento come "no", "non è corretto" e così via.

Aggiungi il nome azione "handle-sequence". Questa è la stessa azione dell'intent "Sequenza", 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'ultima espressione. Qui non aggiungiamo un "existing_sequence" parametro in modo che il webhook sovrascriva la sequenza esistente con quella precedente.
Abilita la chiamata webhook per questo intent.

Creare un intent "Sequenza - Fine".
- 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 di nuovo degli intent "Modifica" e "Fine" ora che l'agente ha terminato la raccolta della sequenza.
Aggiungi frasi di addestramento come "è tutto", "fatto" e così via.

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

Collegare gli intent tramite webhook
Ora hai tutto il necessario per codificare la logica di questi intent. Nella sezione successiva vedrai come codificare il webhook per utilizzare tutti questi contesti, azioni, parametri ed eventi per completare il flusso di convalida della sequenza.