Eingabe- und Ausgabekontexte werden auf Intents angewendet. Sie steuern gemeinsam den Ablauf der Unterhaltung:
- Ausgabekontexte steuern aktive Kontexte. Wird ein Intent zugeordnet, werden die für diesen Intent konfigurierten Ausgabekontexte aktiviert.
- Eingabekontexte steuern die Intent-Zuordnung. Während Kontexte aktiv sind, ordnet Dialogflow mit größerer Wahrscheinlichkeit Intents zu, die mit Eingabekontexten konfiguriert sind, die eine Teilmenge der derzeit aktiven Kontexte sind.
Mit Kontexten haben Sie folgende Möglichkeiten:
- Die Reihenfolge des Intent-Abgleichs steuern.
- Kontextspezifische Intents mit denselben Trainingsformulierungen erstellen.
Betrachten Sie beispielsweise die folgenden Intents:
Intent-Name | Trainingssätze | Parameter | Eingabekontexte | Ausgabekontexte | Antwort |
---|---|---|---|---|---|
pet-init | "What do they look like?" | - | - | - | "What kind of pet do you like?" |
pet-select-dogs | "I like dogs" | - | - | dogs | "What do you want to know about dogs?" |
pet-select-cats | "I like cats" | - | - | cats | "What do you want to know about cats?" |
dog-show | "What do they look like?" | - | dogs | - | "Here is a picture of a dog." |
cat-show | "What do they look like?" | - | cats | - | "Here is a picture of a cat." |
Wenn der Endnutzer I like dogs
sagt:
- Der Intent
pet-select-dogs
wird zugeordnet. - Der Ausgabekontext ist
dogs
und wird somit zum aktiven Kontext.
Wenn der Endnutzer I like cats
sagt:
- Der Intent
pet-select-cats
wird zugeordnet. - Der Ausgabekontext ist
cats
und wird somit zum aktiven Kontext.
Wenn der Endnutzer What do they look like?
sagt:
- Wenn
dogs
der aktive Kontext ist:- Der Intent
dog-show
wird zugeordnet. - Dem Endnutzer wird ein Hundebild angezeigt.
- Der Intent
- Wenn
cats
der aktive Kontext ist:- Der Intent
cat-show
wird zugeordnet. - Dem Endnutzer wird ein Katzenbild angezeigt.
- Der Intent
- Wenn kein aktiver Kontext vorhanden ist:
- Der Intent
pet-init
wird zugeordnet. - Der Endnutzer wird gefragt, welches Tier er mag.
- Der Intent
Ausgabekontexte
Auf einen Intent können mehrere Ausgabekontexte angewendet werden. Wenn ein Intent zugeordnet wird, werden alle Ausgabekontexte, die auf den Intent angewendet werden, aktiv.
Parameterreferenzen für aktive Kontexte
Wenn ein Intent mit Ausgabekontext zugeordnet wird, können seine gesammelten Parameterwerte als temporärer Speicher mit Parameterreferenzen für aktive Kontexte dienen. Auf diese Werte kann während der zukünftigen Intent-Zuordnung zugegriffen werden, solange der Kontext aktiv bleibt.
Betrachten Sie zum Beispiel die folgende Variante des obigen Beispiels für Haustiere:
Intent-Name | Trainingssätze | Parameter | Eingabekontexte | Ausgabekontexte | Antwort |
---|---|---|---|---|---|
pet-init | "What do they look like?" | - | - | - | "What kind of pet do you like?" |
pet-select | "I like dogs", "I like cats" | pet | - | pet-chosen | "What do you want to know about $pet?" |
pet-show | "What do they look like?" | - | pet-chosen | - | "Here is a picture of a #pet-chosen.pet." |
Wenn der Endnutzer I like dogs
oder I like cats
sagt:
- Der Intent
pet-select
wird zugeordnet. - Der
pet
-Parameter ist auf den ausgewählten Haustiertyp festgelegt. - Der Ausgabekontext ist
pet-chosen
und wird somit zum aktiven Kontext.
Wenn der Endnutzer What do they look like?
sagt:
- Wenn
pet-chosen
der aktive Kontext ist:- Der Intent
pet-show
wird zugeordnet. - Wenn der Endnutzer in der vorherigen Unterhaltungsrunde
dogs
ausgewählt hat, wird ihm ein Hundebild angezeigt. - Wenn der Endnutzer in der vorherigen Unterhaltungsrunde
cats
ausgewählt hat, wird ihm ein Katzenbild angezeigt.
- Der Intent
- Wenn kein aktiver Kontext vorhanden ist:
- Der Intent
pet-init
wird zugeordnet. - Der Endnutzer wird aufgefordert, einen Haustiertyp auszuwählen.
- Der Intent
Lebensdauer
Jeder aktive Kontext hat eine Lebensdauer, welche die Anzahl der dialogorientierten Unterhaltungen definiert, bei denen der Kontext aktiv bleibt. Die Standardlebensdauer beträgt fünf Unterhaltungsrunden für normale Intents und zwei Unterhaltungsrunden für Follow-up-Intents. Sie können die Standardlebensdauer für alle Kontexte überschreiben. Darüber hinaus laufen alle Kontexte nach 20 Minuten ab, nachdem sie aktiv wurden. Wenn ein Intent einem Ausgabekontext zugeordnet wird, der bereits aktiv ist, werden die Lebensdauer und der Ablauftimer zurückgesetzt.
Betrachten Sie beispielsweise die folgenden Intent-Beschreibungen für einen Informations-Agent für Haustiere:
Intent-Name | Trainingssätze | Parameter | Eingabekontexte | Ausgabekontexte | Antwort |
---|---|---|---|---|---|
pet-init | "What do they look like?", "What do they sound like?", "How big are they?" | - | - | - | "What kind of pet do you like?" |
pet-select | "I like dogs", "I like cats" | pet | - | pet-chosen (lifespan = 2) | "What do you want to know about $pet?" |
pet-show | "What do they look like?" | - | pet-chosen | - | "Here is a picture of a #pet-chosen.pet. What else do you want to know?" |
pet-audio | "What do they sound like?" | - | pet-chosen | - | "Here is a #pet-chosen.pet sound. What else do you want to know?" |
pet-size | "How big are they?" | - | pet-chosen | - | "Here is a #pet-chosen.pet size chart. What else do you want to know?" |
Die folgende Tabelle zeigt ein Beispieldialog für diesen Informations-Agent für Haustiere, der die Lebensdauer des pet-chosen
-Kontexts veranschaulicht:
Runde | Dialog | Erklärung |
---|---|---|
1 | Agent: What kind of pet do you like? | Der Intent pet-init wird zugeordnet. |
2 | Nutzer: I like cats. Agent: What do you want to know about cats? |
Der Intent pet-select wird zugeordnet. Der Ausgabekontext pet-chosen wird zum aktiven Kontext. |
3 | Nutzer: What do they look like? Agent: Here is a picture of a cat. What else do you want to know? |
Der Intent pet-show hat einen pet-chosen -Eingabekontext, daher wird er zugeordnet. Der Kontext pet-chosen war eine Runde lang aktiv. |
4 | Nutzer: What do they sound like? Agent: Here is a cat sound. What else do you want to know? |
Der Intent pet-audio hat einen pet-chosen -Eingabekontext, daher wird er abgeglichen. Der Kontext pet-chosen war zwei Runden lang aktiv. |
5 | Nutzer: How big are they? Agent: What kind of pet do you like? |
Die Intent pet-init wird wieder zugeordnet, da der Kontext pet-chosen nicht mehr aktiv ist. |
Eingabekontexte
Während Kontexte aktiv sind, ordnet Dialogflow mit größerer Wahrscheinlichkeit Intents zu, die mit Eingabekontexten konfiguriert sind, die den derzeit aktiven Kontexten entsprechen. Die detaillierten Intent-Zuordnungsregeln sind:
- Die Eingabekontextliste eines Intents muss eine Teilmenge der aktuell aktiven Kontextliste sein, damit sie zugeordnet werden kann. Dies gilt auch für Intents ohne Eingabekontexte.
- Bei Intents, die Regel 1 erfüllen, werden am wahrscheinlichsten diejenigen zugeordnet, die eine Eingabekontextliste haben, die der aktuell aktiven Kontextliste am ehesten entspricht.
Beispiel:
- Intents ohne Eingabekontexte können jederzeit zugeordnet werden.
- Wenn keine Kontexte aktiv sind, können nur Intents ohne Eingabekontexte zugeordnet werden.
- Wenn die Kontexte "A" und "B" aktiv sind, kann ein Intent mit den Kontexten "A" und "C" nicht zugeordnet werden.
- Wenn die Kontexte "A", "B" und "C" aktiv sind, kann ein Intent mit den Kontexten "A" und "B" zugeordnet werden.
- Wenn die Kontexte "A" und "B" aktiv sind, ist es wahrscheinlicher, dass ein Intent mit Eingabekontexten "A" und "B" zugeordnet wird als ein Intent ohne Eingabekontext oder ein Intent mit nur "A" für einen Eingabekontext.