I contesti di input e output vengono applicati agli intent. Funzionano insieme per controllare il flusso della conversazione:
- I contesti di output controllano i contesti attivi. Quando viene trovato un intent, tutti i contesti di output configurati per quell'intent diventano attivi.
- I contesti di input controllano la corrispondenza degli intent. Mentre i contesti sono attivi, è più probabile che Dialogflow trovi gli intent configurati con contesti di input che sono un sottoinsieme dei contesti attualmente attivi.
Con i contesti puoi:
- Controllare l'ordine di corrispondenza degli intent.
- Creare intent specifici per il contesto con le stesse frasi di addestramento.
Ad esempio, considera i seguenti intent:
| Nome dell'intent | Frasi di addestramento | Parametri | Contesti di input | Contesti di output | Risposta |
|---|---|---|---|---|---|
| pet-init | "Che aspetto hanno?" | - | - | - | "Che tipo di animale domestico ti piace?" |
| pet-select-dogs | "Mi piacciono i cani" | - | - | dogs | "Cosa vuoi sapere sui cani?" |
| pet-select-cats | "Mi piacciono i gatti" | - | - | cats | "Cosa vuoi sapere sui gatti?" |
| dog-show | "Che aspetto hanno?" | - | dogs | - | "Ecco l'immagine di un cane." |
| cat-show | "Che aspetto hanno?" | - | cats | - | "Ecco l'immagine di un gatto." |
Quando l'utente finale dice I like dogs:
- Viene trovato l'intent
pet-select-dogs. - Il contesto di output è
dogs, quindi diventa il contesto attivo.
Quando l'utente finale dice I like cats:
- Viene trovato l'intent
pet-select-cats. - Il contesto di output è
cats, quindi diventa il contesto attivo.
Quando l'utente finale dice What do they look like?:
- Se
dogsè il contesto attivo:- Viene trovato l'intent
dog-show. - All'utente finale viene mostrata l'immagine di un cane.
- Viene trovato l'intent
- Se
catsè il contesto attivo:- Viene trovato l'intent
cat-show. - All'utente finale viene mostrata l'immagine di un gatto.
- Viene trovato l'intent
- Se non è presente alcun contesto attivo:
- Viene trovato l'intent
pet-init. - All'utente finale viene chiesto che tipo di animale domestico gli piace.
- Viene trovato l'intent
Contesti di output
A un intent possono essere applicati più contesti di output. Quando viene trovato un intent, tutti i contesti di output applicati all'intent diventano attivi.
Riferimenti ai parametri per i contesti attivi
Quando viene trovato un intent con un contesto di output, i valori dei parametri raccolti possono fungere da spazio di archiviazione temporaneo con riferimenti ai parametri per i contesti attivi. È possibile accedere a questi valori durante la corrispondenza degli intent futuri, finché il contesto rimane attivo.
Ad esempio, considera la seguente variante dell'esempio di animale domestico riportato sopra:
| Nome dell'intent | Frasi di addestramento | Parametri | Contesti di input | Contesti di output | Risposta |
|---|---|---|---|---|---|
| pet-init | "Che aspetto hanno?" | - | - | - | "Che tipo di animale domestico ti piace?" |
| pet-select | "Mi piacciono i cani", "Mi piacciono i gatti" | pet | - | pet-chosen | "Cosa vuoi sapere su $pet?" |
| pet-show | "Che aspetto hanno?" | - | pet-chosen | - | "Ecco l'immagine di un #pet-chosen.pet." |
Quando l'utente finale dice I like dogs o I like cats:
- Viene trovato l'intent
pet-select. - Il
petparametro è impostato sul tipo di animale domestico scelto. - Il contesto di output è
pet-chosen, quindi diventa il contesto attivo.
Quando l'utente finale dice What do they look like?:
- Se
pet-chosenè il contesto attivo:- Viene trovato l'intent
pet-show. - Se l'utente finale ha selezionato
dogsnel turno di conversazione precedente, gli viene mostrata l'immagine di un cane. - Se l'utente finale ha selezionato
catsnel turno di conversazione precedente, gli viene mostrata l'immagine di un gatto.
- Viene trovato l'intent
- Se non è presente alcun contesto attivo:
- Viene trovato l'intent
pet-init. - All'utente finale viene chiesto di selezionare un tipo di animale domestico.
- Viene trovato l'intent
Durata
Ogni contesto attivo ha una durata che definisce il numero di turni di conversazione per i quali il contesto rimane attivo. La durata predefinita è di cinque turni di conversazione per gli intent normali e di due turni di conversazione per gli intent di follow-up. Puoi sostituire la durata predefinita per qualsiasi contesto. Inoltre, tutti i contesti scadono dopo 20 minuti dall'attivazione. Quando viene trovato un intent con un contesto di output già attivo, la durata e il timer di scadenza vengono reimpostati.
Ad esempio, considera le seguenti descrizioni degli intent per un agente di informazioni sugli animali domestici:
| Nome dell'intent | Frasi di addestramento | Parametri | Contesti di input | Contesti di output | Risposta |
|---|---|---|---|---|---|
| pet-init | "Che aspetto hanno?", "Che verso fanno?", "Quanto sono grandi?" | - | - | - | "Che tipo di animale domestico ti piace?" |
| pet-select | "Mi piacciono i cani", "Mi piacciono i gatti" | pet | - | pet-chosen (lifespan = 2) | "Cosa vuoi sapere su $pet?" |
| pet-show | "Che aspetto hanno?" | - | pet-chosen | - | "Ecco l'immagine di un #pet-chosen.pet. Cos'altro vuoi sapere?" |
| pet-audio | "Che verso fanno?" | - | pet-chosen | - | "Ecco il verso di un #pet-chosen.pet. Cos'altro vuoi sapere?" |
| pet-size | "Quanto sono grandi?" | - | pet-chosen | - | Ecco una tabella delle dimensioni di un #pet-chosen.pet. Cos'altro vuoi sapere?" |
La tabella seguente mostra un esempio di dialogo per questo agente di informazioni sugli animali domestici, che illustra la durata del contesto pet-chosen:
| Turno | Dialogo | Spiegazione |
|---|---|---|
| 1 | Agente: Che tipo di animale domestico ti piace? | Viene trovato l'intent pet-init. |
| 2 | Utente: Mi piacciono i gatti. Agente: Cosa vuoi sapere sui gatti? |
Viene trovato l'intent pet-select. Il contesto di output pet-chosen diventa il contesto attivo. |
| 3 | Utente: Che aspetto hanno? Agente: Ecco l'immagine di un gatto. Cos'altro vuoi sapere? |
L'intent pet-show ha un contesto di input pet-chosen, quindi viene trovato. Il contesto pet-chosen è attivo da 1 turno. |
| 4 | Utente: Che verso fanno? Agente: Ecco il verso di un gatto. Cos'altro vuoi sapere? |
L'intent pet-audio ha un contesto di input pet-chosen, quindi viene trovato. Il contesto pet-chosen è attivo da 2 turni. |
| 5 | Utente: Quanto sono grandi? Agente: Che tipo di animale domestico ti piace? |
Viene trovato di nuovo l'intent pet-init, perché il contesto pet-chosen non è più attivo. |
Contesti di input
Mentre i contesti sono attivi, è più probabile che Dialogflow trovi gli intent configurati con contesti di input che corrispondono ai contesti attualmente attivi. Le regole dettagliate per la corrispondenza degli intent sono le seguenti:
- Per trovare un intent, l'elenco dei contesti di input dell'intent deve essere un sottoinsieme dell'elenco dei contesti attualmente attivi. Questo vale anche per gli intent senza contesti di input.
- Per gli intent che soddisfano la regola n. 1, è più probabile che vengano trovati quelli con un elenco di contesti di input che corrisponde più da vicino all'elenco dei contesti attualmente attivi.
Ad esempio:
- Gli intent senza contesti di input possono essere trovati in qualsiasi momento.
- Quando non sono attivi contesti, possono essere trovati solo gli intent senza contesti di input.
- Se i contesti "A" e "B" sono attivi, non è possibile trovare un intent con i contesti di input "A" e "C".
- Se i contesti "A", "B" e "C" sono attivi, è possibile trovare un intent con i contesti di input "A" e "B".
- Se i contesti "A" e "B" sono attivi, è più probabile che venga trovato un intent con i contesti di input "A" e "B" rispetto a un intent senza contesto di input o a un intent con solo "A" come contesto di input.