Eingabe- und Ausgabekontexte

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.
  • Wenn cats der aktive Kontext ist:
    • Der Intent cat-show wird zugeordnet.
    • Dem Endnutzer wird ein Katzenbild angezeigt.
  • Wenn kein aktiver Kontext vorhanden ist:
    • Der Intent pet-init wird zugeordnet.
    • Der Endnutzer wird gefragt, welches Tier er mag.

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.
  • Wenn kein aktiver Kontext vorhanden ist:
    • Der Intent pet-init wird zugeordnet.
    • Der Endnutzer wird aufgefordert, einen Haustiertyp auszuwählen.

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:

  1. 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.
  2. 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.