I contesti di input e di output vengono applicati agli intent. I due dispositivi interagiscono per controllare il flusso della conversazione:
- I contesti di output controllano i contesti attivi. Quando viene trovata una corrispondenza di un intent, tutti i contesti di output configurati per quell'intent diventano attivi.
- I contesti di input controllano la corrispondenza degli intent. Sebbene i contesti siano attivi, è più probabile che Dialogflow corrisponda agli intent configurati con contesti di input che sono un sottoinsieme di contesti attualmente attivi.
Con i contesti puoi:
- Controlla l'ordine di corrispondenza dell'intent.
- Crea intent specifici del contesto con le stesse frasi di addestramento.
Ad esempio, considera i seguenti intent:
Nome intent | Frasi di addestramento | Parametri | Contesti di input | Contesti di output | Risposta |
---|---|---|---|---|---|
pet-init | "Che aspetto hanno?" | - | - | - | "Che tipo di animale domestico ti piace?" |
seleziona-cani-animali | "Mi piacciono i cani" | - | - | cani | "Cosa vuoi sapere sui cani?" |
seleziona-gatti | "Mi piacciono i gatti" | - | - | gatti | "Cosa vuoi sapere sui gatti?" |
show cani | "Che aspetto hanno?" | - | cani | - | "Ecco l'immagine di un cane." |
cat-show | "Che aspetto hanno?" | - | gatti | - | "Ecco l'immagine di un gatto." |
Quando l'utente finale dice I like dogs
:
- L'intent
pet-select-dogs
corrisponde. - Il contesto di output è
dogs
, quindi diventa il contesto attivo.
Quando l'utente finale dice I like cats
:
- L'intent
pet-select-cats
corrisponde. - 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:- L'intent
dog-show
corrisponde. - All'utente finale viene mostrata l'immagine di un cane.
- L'intent
- Se
cats
è il contesto attivo:- L'intent
cat-show
corrisponde. - All'utente finale viene mostrata un'immagine di un gatto.
- L'intent
- Se non è presente alcun contesto attivo:
- L'intent
pet-init
corrisponde. - All'utente finale viene chiesto che tipo di animale domestico preferisce.
- L'intent
Contesti di output
A un intent possono essere applicati più contesti di output. Quando viene trovata una corrispondenza di un intent, tutti i contesti di output applicati all'intent diventano attivi.
Riferimenti ai parametri per contesti attivi
Quando viene trovata una corrispondenza di un intent con contesto di output, i valori parametro raccolti possono fungere da spazio di archiviazione temporaneo con riferimenti a parametri per contesti attivi. È possibile accedere a questi valori durante la corrispondenza di intent futura, finché il contesto rimane attivo.
Prendi in considerazione la seguente variante dell'esempio relativo agli animali domestici riportato sopra:
Nome 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" | animale domestico | - | scelto dall'animale | "Cosa vuoi sapere su $pet?" |
mostra-animali-da-animali | "Che aspetto hanno?" | - | scelto dall'animale | - | "Ecco l'immagine di un #pet-chosen.pet." |
Quando l'utente finale dice I like dogs
o I like cats
:
- L'intent
pet-select
corrisponde. - Il parametro
pet
è 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:- L'intent
pet-show
corrisponde. - Se l'utente finale ha selezionato
dogs
nel turno di conversazione precedente, all'utente finale viene mostrata una foto di un cane. - Se l'utente finale ha selezionato
cats
nella svolta di conversazione precedente, all'utente finale viene mostrata un'immagine di un gatto.
- L'intent
- Se non è presente alcun contesto attivo:
- L'intent
pet-init
corrisponde. - All'utente finale viene chiesto di selezionare un tipo di animale domestico.
- L'intent
Vita media
Ogni contesto attivo ha una durata che definisce il numero di svolte conversazionali per cui il contesto rimane attivo. La durata predefinita è di cinque svolte conversazionali per intent normali e due svolte conversazionale per intent di follow-up. Puoi eseguire l'override della durata predefinita per qualsiasi contesto. Inoltre, tutti i contesti scadono dopo 20 minuti dall'attivazione. Quando un intent viene abbinato a un contesto di output già attivo, la durata e il timer di scadenza vengono reimpostati.
Ad esempio, considera le seguenti descrizioni di intent per un agente di informazioni sugli animali domestici:
Nome 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" | animale domestico | - | scelto dall'animale (durata = 2) | "Cosa vuoi sapere su $pet?" |
mostra-animali-da-animali | "Che aspetto hanno?" | - | scelto dall'animale | - | "Ecco l'immagine di un #pet-chosen.pet. Cos'altro vorresti sapere?" |
sistema audio per animali domestici | "Che verso fa?" | - | scelto dall'animale | - | "Ecco il suono di #pet-chosen.pet. Cos'altro vorresti sapere?" |
taglia animale | "Quanto sono grandi?" | - | scelto dall'animale | - | "Ecco un grafico delle taglie di #pet-chosen.pet. Cos'altro vorresti sapere?" |
La seguente tabella mostra una finestra di dialogo di esempio per questo agente informazioni sugli animali domestici,
che illustra la durata del contesto pet-chosen
:
Attiva | Finestra di dialogo | Spiegazione |
---|---|---|
1 | Agente: Che tipo di animale domestico preferisci? | L'intent pet-init corrisponde. |
2 | Utente: Mi piacciono i gatti. Agente: Cosa vuoi sapere sui gatti? |
L'intent pet-select corrisponde. Il contesto di output pet-chosen diventa il contesto attivo. |
3 | Utente: Che aspetto hanno? Agente: Ecco la foto di un gatto. Cos'altro vorresti sapere? |
L'intent pet-show ha un contesto di input pet-chosen , quindi corrisponde. Il contesto pet-chosen è attivo per 1 turno. |
4 | Utente: Che verso dice? Agente: Ecco il verso di un gatto. Cos'altro vorresti sapere? |
L'intent pet-audio ha un contesto di input pet-chosen , quindi corrisponde. Il contesto pet-chosen è stato attivo per 2 turni. |
5 | Utente: Quanto sono grandi? Agente: Che tipo di animale domestico preferisci? |
Esiste una nuova corrispondenza per l'intent pet-init perché il contesto pet-chosen non è più attivo. |
Contesti di input
Sebbene i contesti siano attivi, è più probabile che Dialogflow corrisponda agli intent configurati con contesti di input corrispondenti a quelli attualmente attivi. Di seguito sono riportate le regole dettagliate sulla corrispondenza di intent:
- Per poter trovare una corrispondenza, l'elenco di contesti di input di un intent deve essere un sottoinsieme dell'elenco di contesti attualmente attivo. Questo vale anche per gli intent senza contesti di input.
- Per gli intent che soddisfano la regola n. 1, quelli con un elenco di contesti di input che corrispondono maggiormente all'elenco di contesti attualmente attivo hanno maggiori probabilità di essere soddisfatti.
Ad esempio:
- Gli intent senza contesti di input possono essere abbinati in qualsiasi momento.
- Se nessun contesto è attivo, è possibile abbinare solo gli intent senza contesti di input.
- Se i contesti "A" e "B" sono attivi, non è possibile trovare corrispondenze di un intent con contesti di input "A" e "C".
- Se i contesti "A", "B" e "C" sono attivi, è possibile trovare una corrispondenza per un intent con contesti di input "A" e "B".
- Se i contesti "A" e "B" sono attivi, un intent con contesti di input "A" e "B" ha maggiori probabilità di corrispondere rispetto a un intent senza contesto di input o un intent con solo "A" per un contesto di input.