Damit der Agent an der Unterhaltung teilnehmen kann, muss der Agent auf den Endnutzer mit einer Antwort auf eine Frage, einer Anfrage nach Informationen oder dem Beenden der Sitzung antworten. Ihr Agent muss sich möglicherweise auch mit Ihrem Dienst in Verbindung setzen, um dynamische Antworten zu generieren oder Aktionen für eine weitere Unterhaltungsrunde auszuführen. Auftragsausführung wird für all dies verwendet.
Eine Auftragsausführung kann folgende Elemente enthalten:
- Statische Antwortnachrichten
- Webhook-Aufrufe nach dynamischen Antworten und/oder Aktionen
- Parametervoreinstellungen zum Festlegen oder Überschreiben von Parameterwerten
Während der Unterhaltungsrunde eines Agents ist es möglich (und manchmal gewünscht), mehrere Auftragsausführungen aufzurufen, von denen jede eine Antwort erzeugen kann. Conversational Agents (Dialogflow CX) speichern diese Antworten in einer Antwortwarteschlange. Nach Abschluss der Unterhaltungsrunde des Agents sendet Conversational Agents (Dialogflow CX) die sortierten Antworten an den Endnutzer.
Anwendungsfälle für Auftragsausführungen
Die Auftragsausführung wird überall dort verwendet, wo Antwortnachrichten benötigt werden:
- Auftragsausführung für Seiteneingaben
- Routen
- Event-Handler
- Erstaufforderungen für Formulare
- Handler von erneuten Eingabeaufforderungen für Formulare
Für jeden dieser Anwendungsfälle wird in der Konsole das Bearbeitungsfenster für die Auftragsausführung geöffnet.
Statische Antwortnachrichten (Dialogoptionen)
Statische Antwortnachrichten sind Agent-Antworten, die Sie während der Entwicklung definieren. Sie definieren sie beim Erstellen der Auftragsausführung. Während der Laufzeit werden diese Antworten der Antwortwarteschlange hinzugefügt.
Es gibt mehrere Antwortnachrichtentypen, die in Unterabschnitten weiter unten beschrieben werden. Bei Verwendung der Konsole enthalten Auftragsausführungsfelder eine erste Textantwort-Karte. Sie können aber auch auf Dialogfeld hinzufügen klicken, um weitere Karten für andere Antwortnachrichtentypen hinzuzufügen.
Text
SMS-Antwortnachrichten senden Text an den Endnutzer. Wenn Ihre API-Aufrufe zur Intent-Erkennung oder Integration die Sprachsynthese verwenden, wird dieser Text zur Generierung der Audioinhalte genutzt. In diesem Fall kann für den bereitgestellten Text optional die Speech Synthesis Markup Language (SSML) verwendet werden.
Sie können mehrere Textantwortkarten und mehrere Textantworten auf jeder Karte definieren. Wenn Sie mehrere Karten definieren, werden diese zur Laufzeit zu einer einzelnen Antwort verkettet. Wenn Sie mehrere Antworten innerhalb einer Karte definieren, wird eine der Nachrichten auf der Karte nach dem Zufallsprinzip ausgewählt.
Solche Textnachrichten können Parameterreferenzen und Inline-Systemfunktionen enthalten.
Benutzerdefinierte Nutzlast
Einige Integrationen unterstützen benutzerdefinierte Nutzlastantworten, um komplexe Antworten zu verarbeiten. Diese benutzerdefinierten Nutzlasten werden in einem JSON-Format bereitgestellt, das in der Integrationsdokumentation definiert ist. Ein Beispiel dafür ist das benutzerdefinierte Dialogflow CX Messenger-Nutzlastformat.
Sie können Parameterreferenzen in den JSON-Code Ihrer benutzerdefinierten Nutzlast aufnehmen. Sie sollten als JSON-Stringwerte behandelt werden. Umschließen Sie sie daher mit doppelten Anführungszeichen. Beispiel:
{ "someField": "$session.params.date" }
Sie können auch eine benutzerdefinierte Nutzlast an selbst entwickelte Integrationen senden. Diese wird nicht von Conversational Agents (Dialogflow CX) verarbeitet, sondern muss in Ihrer eigenen Geschäftslogik behandelt werden.
Weitere Informationen finden Sie auch im Abschnitt Benutzerdefinierte Nutzlastvorlagen weiter unten.
Übergabe an Kundenservicemitarbeiter
Diese Antwort signalisiert dem Aufrufer der API zur Intent-Erkennung, dass die Unterhaltung an einen menschlichen Mitarbeiter übergeben werden soll. Conversational Agents (Dialogflow CX) verwenden dieses Signal nur, um Unterhaltungen zu identifizieren, die zu Messzwecken übergeben werden. Der Sitzungsstatus wird nicht geändert. Ihr System oder Ihre Integration kann dieses Signal verwenden, um die erforderlichen Aktionen zur Übergabe der Unterhaltung auszuführen. Conversational Agents (Dialogflow CX) zwingt diesen Daten keine Struktur auf, sodass Sie jede für Ihr System geeignete Struktur wählen können.
Metadaten für erfolgreiche Unterhaltungen
Diese Antwort signalisiert dem Aufrufer der API zur Intent-Erkennung, dass die Unterhaltung mit dem Conversational Agents (Dialogflow CX)-Agent erfolgreich war. Conversational Agents (Dialogflow CX) verwenden dieses Signal nur, um Unterhaltungen zu identifizieren, die zu Messzwecken erfolgreich waren. Der Sitzungsstatus wird nicht geändert. Ihr System oder Ihre Integration kann dieses Signal verwenden, um die erforderlichen Aktionen auszuführen. Conversational Agents (Dialogflow CX) zwingt diesen Daten keine Struktur auf, sodass Sie jede für Ihr System geeignete Struktur wählen können.
Zuvor aufgenommenes Audio abspielen
Diese Antwort spielt eine Audiodatei für Integrationen ab, die dieses Feature unterstützen.
Die Anforderungen an das Audiodateiformat können sich je nach Integration unterscheiden. Weitere Informationen finden Sie beispielsweise in den Anforderungen für das Dialogflow CX-Telefon-Gateway.
Bei Telefonieintegrationen von Partnern muss der Partner auf die URL der Audiodatei zugreifen können. Auf eine öffentlich verfügbare URL, z. B. eine öffentliche Datei in Cloud Storage, kann der Partner jederzeit zugreifen. Der Partner kann auch eingeschränkten Zugriff auf Audiodateien gewähren. Weitere Informationen finden Sie in der Partnerdokumentation.
Audiotext ausgeben
Diese Antwort ähnelt der Text-Antwort, gilt jedoch nur für die Sprachsynthese. Wenn der Agent sowohl Text- als auch Sprachsitzungen verarbeiten kann, können Sie mithilfe von eindeutigen Text- und Audiotextausgabe-Antworten eine andere Nutzererfahrung für Text bzw. Sprache generieren. Wenn eine Audiotextausgabe für eine Sprachsitzung bereitgestellt wird, werden die Antworten für Nur-Text ignoriert.
Wenn Ihr Agent sowohl Text- als auch Sprachsitzungen verarbeitet und Sie dieselben Antwortnachrichten wünschen, verwenden Sie nur Textantworten für Text- und Sprachsitzungen.
Der Ausgabe-Audiotext wird ähnlich wie Textantworten verkettet. Wenn die Ausgabe-Audiotextantworten eine Mischung aus Text und SSML sind, wird das verkettete Ergebnis als SSML behandelt. Der Agent-Designer sollte idealerweise konsistent Text oder SSML verwenden.
Bedingte Antwort
Dieser Antworttyp wird für bedingte Antworten verwendet. Das allgemeine Format ist:
if [condition] [response] elif [condition] [response] elif [condition] [response] else [response] endif
wobei
[condition]
das gleiche Format ist, das auch für Routenbedingungen genutzt wird.[response]
ist eine Textantwort- Die Sperren
elif
undelse
sind optional.
Beispiel:
if $session.params.user-age >= 21 Ok, you may enter. else Sorry, you cannot enter. endif
Sowohl [condition]
als auch [response]
können Inline-Systemfunktionen verwenden, um dynamische Werte während Unterhaltungen zu generieren.
Weitere Informationen finden Sie in den Referenzen zu Systemfunktionen und Routenbedingungen. Die [condition]
wird basierend auf dem Sitzungsstatus zu Beginn der Ausführung aufgelöst. Wenn [response]
vom Sitzungsstatus abhängt, wird es am Ende der Ausführung anhand des aktualisierten Sitzungsstatus aufgelöst.
Bei mehrsprachigen Agents ist [condition]
für alle Sprachen üblich, während [response]
sprachspezifisch ist. Wenn Sie [condition]
für eine Sprache in der Konsole ändern, wird dieser Teil in allen Sprachen des Agents aktualisiert. Da es zu einer neuen Bedingung wird, wird [response]
für alle Sprachen gelöscht, außer der Sprache, die Sie beim Aktualisieren von [condition]
ausgewählt haben.
Telefonieweiterleitungsanruf
Für einige Telefonieintegrationen können Sie eine US-amerikanische Telefonnummer für die Anrufweiterleitung angeben. Zur Laufzeit, wenn der virtuelle Conversational Agents-Agent (Dialogflow CX) eine Auftragsausführung mit Anrufweiterleitung aufruft, wird der Aufruf an die angegebene Anzahl weitergeleitet und die Verarbeitung des virtuellen Kundenservicemitarbeiters gesperrt.
Kanalspezifische Antwortnachrichten
Beim Definieren der Auftragsausführung können Sie kanalspezifische Antwortnachrichten erstellen. So können Sie gezielte Antworten für Textchat, Sprachanrufe, SMS, bestimmte Integrationen, die Kanäle unterstützen, usw. erstellen. Antwortnachrichten, die nicht für einen bestimmten Kanal gelten, werden als Standardantwortnachrichten bezeichnet.
Bei der Laufzeit wählt Conversational Agents (Dialogflow CX) entweder die Standardantwortnachricht oder eine kanalspezifische Antwortnachricht aus, wenn in einer Intent-Erkennungsanfrage ein Kanal angegeben ist. Es empfiehlt sich, Standardantwortnachrichten zu definieren, auch wenn Sie kanalspezifische Antwortnachrichten verwenden. Die Standardantwortnachrichten können als Fallback dienen, wenn Ihr System keinen gültigen Kanal angibt.
Ein Kanalname ist ein benutzerdefiniertes Feld, das Sie mit beliebigem Text festlegen können. Wenn Sie die Conversational Agents API (Dialogflow CX) direkt für Laufzeitaufrufe verwenden, können Sie beliebige Kanalnamen verwenden. Wenn Sie eine vorhandene Integration verwenden, müssen Sie die Kanalnamen verwenden, die von der Integration erkannt werden.
Kanalspezifische Antwortnachrichten während der Entwicklung festlegen
So geben Sie kanalspezifische Antwortnachrichten für die Auftragsausführung an, wenn Sie die Console verwenden:
- Klicken Sie auf Kanal hinzufügen, nachdem Sie die Standardantwortnachrichten hinzugefügt haben. Über die Benutzeroberfläche können Sie kanalspezifische Antwortnachrichten hinzufügen. Klicke noch einmal auf Channel hinzufügen, um einen anderen Channel hinzuzufügen.
So gibst du bei der Verwendung der API kanalspezifische Antwortnachrichten für die Auftragsausführung an:
- Legen Sie für jede Antwortnachricht das Feld
Fulfillment.messages[i].channel
auf den gewünschten Channel fest. Wenn dieses Feld nicht festgelegt ist, ist die Antwort eine Standardantwort.
Kanalspezifische Antwortnachrichten zur Laufzeit verwenden
Wenn Sie eine kanalspezifische Antwortnachricht erhalten möchten, muss der Kanal in der Anfrage zum Erkennen von Intents angegeben werden.
Weitere Informationen finden Sie im Feld queryParams.channel
der Methode detectIntent
des Typs Sessions
.
Wählen Sie ein Protokoll und eine Version für die Sitzungsreferenz aus:
Protokoll | V3 | V3beta1 |
---|---|---|
REST | Sitzungsressource | Sitzungsressource |
RPC | Sitzungsoberfläche | Sitzungsoberfläche |
C++ | SessionsClient | Nicht verfügbar |
C# | SessionsClient | Nicht verfügbar |
Go | SessionsClient | Nicht verfügbar |
Java | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | Nicht verfügbar | Nicht verfügbar |
Python | SessionsClient | SessionsClient |
Ruby | Nicht verfügbar | Nicht verfügbar |
Wenn in einer Anfrage kein Kanal definiert ist oder bei der Auftragsausführung kein übereinstimmender Kanal gefunden wird, wird die Standardantwort von Conversational Agents (Dialogflow CX) zurückgegeben.
Vorlagen für benutzerdefinierte Nutzlasten
Wenn Sie häufig benutzerdefinierte Nutzlasten verwenden, sollten Sie Vorlagen für benutzerdefinierte Nutzlasten verwenden. Benutzerdefinierte Payloads sind manchmal groß und komplex. Mithilfe von Vorlagen lässt sich der Prozess zum Erstellen von Bots vereinfachen.
Sie können diese Vorlagen in den Einstellungen des Agents angeben. Sie stehen dann zur Auswahl, wenn Sie die Auftragsausführung für den Agenten erstellen.
Beispielsweise können die JSON-Nutzlasten für die Schaltflächen „Ja“ und „Nein“ als benutzerdefinierte Nutzlastvorlagen definiert werden. Wenn Sie eine Auftragsausführung erstellen, für die diese Schaltflächen erforderlich sind, müssen Sie beim Erstellen der Auftragsausführung nur die Vorlage auswählen.
Wenn Sie eine Vorlage für eine benutzerdefinierte Fulfillment-Nutzlast auswählen, wird der Inhalt der Vorlage in die Nutzlast eingefügt. Sie können die Nutzlast dann nach Bedarf bearbeiten.
Wenn Sie eine Vorlage ändern, werden die Änderungen nicht automatisch auf alle Fulfillment-Nutzlastdateien angewendet, auf die verwiesen wird.
Informationen zum Erstellen einer benutzerdefinierten Nutzlastvorlage finden Sie unter Allgemeine Einstellungen für den Kundenservicemitarbeiter.
Wenn Sie beim Erstellen einer Auftragsausführung eine benutzerdefinierte Payload-Vorlage auswählen möchten, klicken Sie auf Vorlage auswählen.
Webhook-Aufrufe
Wenn eine Auftragsausführung mit Webhook aufgerufen wird, sendet der Agent eine Anfrage an Ihren Webhook. Ihr Webhook kann alle erforderlichen Aktionen innerhalb Ihres Dienstes ausführen, eine dynamische Antwortnachricht bereitstellen, Parameterwerte überschreiben und die aktuelle Seite ändern.
Im Folgenden werden die Webhook-Einstellungen für die Auftragsausführung beschrieben:
Begriff | Definition |
---|---|
Webhook aktivieren | Dadurch wird der Webhook für die Auftragsausführung aktiviert. |
Webhook | Wählen Sie die Webhook-Ressource aus. |
Tag | Das hier angegebene Text-Tag wird in das Feld WebhookRequest.fulfillmentInfo.tag der Webhook-Anfrage eingefügt, die an Ihren Webhook-Dienst gesendet wird. So lässt sich das Webhook-Verhalten auftragsspezifisch steuern. |
Teilantwort zurückgeben | Ermöglicht das Abbrechen der Wiedergabe einer teilweisen Antwort. Weitere Informationen finden Sie unter Erweiterte Spracheinstellungen. |
Parametervoreinstellungen
Mit einer Auftragsausführung können Sie Voreinstellungen bereitstellen, die aktuelle Parameterwerte festlegen oder überschreiben. Diese Voreinstellungen werden angewendet, bevor statische Antwortnachrichten verarbeitet werden oder ein Webhook aufgerufen wird.
Sie können auch Systemfunktionen verwenden, um den Parameter auf einen dynamisch generierten Wert festzulegen.
Beispiele:
Parameter
now
auf die aktuelle Zeit festlegen:Parameter Wert jetzt $sys.func.NOW() Vorhandenen Parameter
counter
um 1 erhöhen:Parameter Wert Zähler $sys.func.ADD($session.params.counter, 1) Parameter
new-cost
auf den Parameterwertother-cost
festlegen und dabei den vollständigen Wert des zusammengesetzten Objekts beibehalten:Parameter Wert new-cost $sys.func.IDENTITY($session.params.other-cost)
Erweiterte Spracheinstellungen
Diese erweiterten Spracheinstellungen können optional dieselben Spracheinstellungen von Seiten, Ablaufspracheinstellungen und Spracheinstellungen des Agents überschreiben.
Antwortwarteschlange
Während der Unterhaltungsrunde eines Agents ist es möglich (und manchmal gewünscht), mehrere Auftragsausführungen aufzurufen, von denen jede eine Antwort erzeugen kann. Conversational Agents (Dialogflow CX) speichern diese Antworten in einer Antwortwarteschlange.
Unvollständige Beantwortung für Streaming API
Standardmäßig sendet Conversational Agents (Dialogflow CX) die sortierten Antworten nur dann an den Endnutzer, wenn die Unterhaltungsrunde des Agents beendet ist. Sie können bei der Auftragsausführung auch die Option Teilantwort zurückgeben aktivieren, um mithilfe der Streaming-APIs derzeit in der Warteschlange befindliche Antworten als Teilantwort zurückzugeben. Weitere Informationen finden Sie unter Lebenszyklus einer Seite.
Wenn Ihr Webhook beispielsweise lange Zeit ausgeführt wird, können Sie der Auftragsausführung eine statische Antwort hinzufügen und die unvollständige Beantwortung aktivieren. Dadurch wird der Konversations-Agent (Dialogflow CX) die Antwortwarteschlange leeren und alle Nachrichten als unvollständige Antwort senden, bevor der Webhook aufgerufen wird.
Unvollständige Antworten werden derzeit nicht für folgende unterstützt, werden aber später unterstützt:
- Audioeingaben im Simulator
- Telefonieintegrationen von Partnern unterstützen derzeit möglicherweise keine teilweisen Antworten. Weitere Informationen finden Sie in der Partnerdokumentation.
Wenn Sie diese Funktion im Simulator testen möchten, müssen Sie die unvollständige Beantwortung aktivieren.
Beachten Sie im folgenden Beispiel, dass der Webhook 5 Sekunden dauert. Ein Teilantwort wird nicht aktiviert. Die Unterhaltungsrunde des Conversational Agents (Dialogflow CX) wird erst beendet, wenn der Webhook abgeschlossen ist. Während dieser 5 Sekunden werden die Antworten während des Wartens auf den Webhook in die Warteschlange gestellt und erst nach Abschluss der Runde an den Endnutzer zurückgegeben. Dies führt zu einer schlechten Nutzererfahrung.
Wenn Sie die Teilantwort bei der ersten Auftragsausführung aktivieren, gibt der Konversations-Agent (Dialogflow CX) die erste Auftragsausführungsnachricht schnell zurück und ruft den Webhook auf. Nachdem der Webhook abgeschlossen ist, gibt Conversational Agents (Dialogflow CX) die endgültige Antwort zurück. In diesem Szenario wird die Endnutzererfahrung verbessert, da mitgeteilt wird, dass eine kurze Wartezeit zu erwarten ist. Außerdem wird der Webhook-Aufruf gleichzeitig mit einer Antwort ausgeführt, die an den Endnutzer gesendet wird.
Speech Synthesis Markup Language (SSML)
Sie können die Speech Synthesis Markup Language (SSML) in Text- oder Ausgabefeldern für die Textausgabe verwenden. So können Sie die Audioantwort anpassen, indem Sie Details zu Pausen angeben und Audioformatierungen für Akronyme, Datums- und Uhrzeitangaben, Abkürzungen oder zu zensierenden Text festlegen.
Weitere Informationen zur Syntax finden Sie in der SSML-Dokumentation für die Sprachsynthese.