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. Sehen Sie sich zum Beispiel die Benutzerdefiniertes Nutzlastformat in Dialogflow CX Messenger.
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 unter 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) legen für diese Daten keine Struktur fest. sodass Sie eine beliebige Struktur auswählen können, die zu Ihrem System passt.
Metadaten für erfolgreiche Unterhaltungen
Diese Antwort signalisiert dem Detect Intent API-Aufrufer, 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) legen für diese Daten keine Struktur fest. sodass Sie eine beliebige Struktur auswählen können, die zu Ihrem System passt.
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. Sehen Sie sich zum Beispiel die Anforderungen an. für Dialogflow CX Phone Gateway.
Bei Telefonieintegrationen von Partnern muss der Partner auf die URL der Audiodatei zugreifen können. Über eine öffentlich zugängliche URL, z. B. eine öffentliche Datei in Cloud Storage, kann der Partner jederzeit auf die Daten 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ängig ist, wird er aufgelöst.
basierend auf dem aktualisierten Sitzungsstatus am Ende der Auftragsausführung.
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. Während der Laufzeit, wenn der virtuelle Kundenservicemitarbeiter der Conversational Agents (Dialogflow CX) eine Auftragsausführung mit Anrufweiterleitung, Der Anruf wird an die angegebene Nummer weitergeleitet und die Bearbeitung virtueller Kundenservicemitarbeiter ist gesperrt.
Kanalspezifische Antwortnachrichten
Bei der Definition der Auftragsausführung kannst du kanalspezifische Antwortnachrichten, So können Sie zielgerichtete Antworten für Textchat, Sprachanrufe, SMS spezifische Integrationen, die Kanäle unterstützen, usw. Alle Antwortnachrichten, die nicht kanalspezifisch sind heißen Standardantwortnachrichten.
Während der Laufzeit Konversations-Agents (Dialogflow CX) wählen entweder die Standardantwortnachricht, oder eine kanalspezifische Antwortnachricht Ein Kanal wird in einer Anfrage zur Intent-Erkennung angegeben. 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.
Der Channelname ist ein benutzerdefiniertes Feld, für das Sie einen beliebigen 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 bei 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 kannst du 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 Kanal fest. Wenn dieses Feld nicht festgelegt ist, ist die Antwort eine Standardantwort.
Kanalspezifische Antwortnachrichten zur Laufzeit verwenden
Um eine kanalspezifische Antwort zu erhalten,
Der Kanal muss in der Anfragenachricht zur Intent-Erkennung angegeben sein.
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 | Sitzungsschnittstelle | Sitzungsschnittstelle |
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.
Benutzerdefinierte Nutzlastvorlagen
Wenn Sie häufig benutzerdefinierte Nutzlasten verwenden, sollten Sie benutzerdefinierte Nutzlastvorlagen 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 sind dann bei der Erstellung der Auftragsausführung für den Agenten verfügbar.
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 Auftragsausführungsnutzlast auswählen, werden die Vorlageninhalte 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 in der Allgemeine Einstellungen für Kundenservicemitarbeiter fest.
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. Damit kann das Webhook-Verhalten auf die Auftragsausführung abgestimmt werden. |
Teilantwort zurückgeben | Ermöglicht es, die Wiedergabe einer Teilantwort abzubrechen. 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) Wenn Sie den Parameter
new-cost
auf den Parameterwertother-cost
setzen, und den vollständigen zusammengesetzten Objektwert beibehalten:Parameter Wert neue Kosten $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. Konversations-Agents (Dialogflow CX) speichern diese Antworten in einer Antwortwarteschlange.
Unvollständige Beantwortung für Streaming API
Standardmäßig sendet der Konversations-Bot (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 Konversations-Agents (Dialogflow CX) leeren die Antwortwarteschlange und senden alle Nachrichten als Teil bevor der Webhook aufgerufen wird.
Teilantworten werden derzeit in den folgenden Fällen nicht unterstützt: dies wird jedoch später unterstützt:
- Audioeingaben im Simulator
- Telefonieintegrationen von Partnern unterstützen derzeit möglicherweise keine teilweisen Antworten. Informationen zur Bestätigung finden Sie in der Partnerdokumentation.
Um diese Funktion im Simulator zu testen, müssen Sie die Teilantwort 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 in der ersten Auftragsausführung aktivieren, geben Conversational Agents (Dialogflow CX) den Fehlercode und ruft den Webhook auf. Nachdem der Webhook abgeschlossen ist, geben 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) verwenden. in Text- oder Ausgabe-Audiotext-Ausführungsfeldern. Hier kannst du deine Sprachausgabe anpassen indem er Details zu Pausen und Audioformatierung für Akronyme, Datumsangaben, Uhrzeiten, Abkürzungen oder Text, der zensiert werden sollte.
Weitere Informationen zur Syntax finden Sie in der SSML-Dokumentation für die Sprachsynthese.