Verwalten von Mitteilungen - Amazon Lex V1

Wenn Sie Amazon Lex V2 verwenden, lesen Sie stattdessen das Amazon Lex V2-Handbuch.

 

Wenn Sie Amazon Lex V1 verwenden, empfehlen wir, Ihre Bots auf Amazon Lex V2 zu aktualisieren. Wir fügen V1 keine neuen Funktionen mehr hinzu und empfehlen dringend, V2 für alle neuen Bots zu verwenden.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwalten von Mitteilungen

Wenn Sie einen Bot erstellen, können Sie erklärende oder Informationsmitteilungen konfigurieren, die dieser an den Client senden soll. Betrachten Sie die folgenden Beispiele:

  • Sie könnten den Bot mit der folgenden Eingabeaufforderung zur Klärung des Sachverhalts konfigurieren:

    I don't understand. What would you like to do?

    Amazon Lex sendet diese Nachricht an den Kunden, wenn dieser die Absicht des Benutzers nicht versteht.

     

  • Nehmen wir an, dass Sie einen Bot erstellen, um die Absicht OrderPizza zu unterstützen. Für die Bestellung einer Pizza möchten Sie, dass Benutzer weitere Informationen eingeben, zum Beispiel zur Größe der Pizza, zu Belägen und zum Krustentyp. Sie könnten die folgenden Eingabeaufforderungen konfigurieren:

    What size pizza do you want? What toppings do you want? Do you want thick or thin crust?

    Nachdem Amazon Lex die Absicht des Benutzers, Pizza zu bestellen, festgestellt hat, sendet es diese Nachrichten an den Kunden, um Informationen vom Benutzer zu erhalten.

Dieser Abschnitt erklärt das Entwerfen von Benutzerinteraktionen in Ihrer Bot-Konfiguration.

Mitteilungstypen

Bei einer Mitteilung kann es sich um eine Eingabeaufforderung oder eine Anweisung handeln.

  • Eine Eingabeaufforderung ist in der Regel eine Frage und erwartet eine Antwort des Benutzers.

  • Eine Anweisung dient zu Informationszwecken. Eine Antwort des Benutzers wird nicht erwartet.

Eine Mitteilung kann Verweise auf Slot, Sitzungsattribute und Anforderungsattribute enthalten. Zur Laufzeit ersetzt Amazon Lex diese Verweise durch tatsächliche Werte.

Verwenden Sie die folgende Syntax, um auf festgelegte Slot-Werte zu verweisen:

{SlotName}

Verwenden Sie die folgende Syntax, um auf Sitzungsattribute zu verweisen:

[SessionAttributeName]

Verwenden Sie die folgende Syntax, um auf Anforderungsattribute zu verweisen:

((RequestAttributeName))

Mitteilungen können Slot-Werte, Sitzungsattribute und Anforderungsattribute enthalten.

Angenommen, Sie konfigurieren die folgende Nachricht in der OrderPizza Intent Ihres Bots:

"Hey [FirstName], your {PizzaTopping} pizza will arrive in [DeliveryTime] minutes."

Diese Mitteilung bezieht sich sowohl auf Slot-Werte (PizzaTopping) als auch auf Sitzungsattribute (FirstName und DeliveryTime). Zur Laufzeit ersetzt Amazon Lex diese Platzhalter durch Werte und gibt die folgende Meldung an den Client zurück:

"Hey John, your cheese pizza will arrive in 30 minutes."

Um eckige ([]) oder geschweifte Klammern ({}) in eine Mitteilung einzufügen, verwenden Sie den umgekehrten Schrägstrich (\). Die folgende Mitteilung enthält beispielsweise geschweifte und eckige Klammern:

\{Text\} \[Text\]

Der an den Client zurückgegebene Text sieht wie folgt aus:

{Text} [Text]

Weitere Informationen zu Sitzungsattributen enthalten die Beschreibungen der Laufzeit-API-Operationen PostText und PostContent. Ein Beispiel finden Sie unter Reise buchen.

Lambda-Funktionen können auch Nachrichten generieren und sie an Amazon Lex zurückgeben, um sie an den Benutzer zu senden. Wenn Sie Lambda-Funktionen hinzufügen, wenn Sie Ihre Absicht konfigurieren, können Sie Nachrichten dynamisch erstellen. Indem Sie die Nachrichten während der Konfiguration Ihres Bots bereitstellen, können Sie die Erstellung einer Eingabeaufforderung in Ihrer Lambda-Funktion überflüssig machen.

Kontexte zum Konfigurieren von Mitteilungen

Wenn Sie Ihren Bot erstellen, können Sie Nachrichten in verschiedenen Kontexten erstellen, z. B. Aufforderungen zur Erläuterung im Bot, Aufforderungen zur Eingabe von Slot-Werten und Nachrichten von Intents. Amazon Lex wählt in jedem Kontext eine entsprechende Nachricht aus, um sie an Ihren Benutzer zurückzugeben. Sie können eine Gruppe von Mitteilungen für jeden Kontext bereitstellen. Wenn Sie dies tun, wählt Amazon Lex nach dem Zufallsprinzip eine Nachricht aus der Gruppe aus. Sie können auch das Format der Mitteilung angeben oder die Mitteilungen zusammen gruppieren. Weitere Informationen finden Sie unter Unterstützte Mitteilungsformate.

Wenn Sie eine Lambda-Funktion mit einer Absicht verknüpft haben, können Sie jede der Nachrichten überschreiben, die Sie bei der Erstellung konfiguriert haben. Eine Lambda-Funktion ist jedoch nicht erforderlich, um eine dieser Nachrichten zu verwenden.

Bot-Mitteilungen

Sie können Ihren Bot mit Erläuterungsaufforderungen und Nachrichten zum Ende der Sitzung konfigurieren. Zur Laufzeit verwendet Amazon Lex die Aufforderung zur Erläuterung, wenn es die Absicht des Benutzers nicht versteht. Sie können konfigurieren, wie oft Amazon Lex eine Klarstellung anfordert, bevor die Nachricht zum Ende der Sitzung gesendet wird. Sie konfigurieren Meldungen auf Bot-Ebene im Abschnitt „Fehlerbehandlung“ der Amazon Lex Lex-Konsole, wie in der folgenden Abbildung dargestellt:


                        Abschnitt zur Fehlerbehandlung im Editor-Tab der Konsole. Es können Aufforderungen zur Klärung und ein Satz zum Auflegen angegeben werden.

Mit der API konfigurieren Sie Mitteilungen, indem Sie die Felder clarificationPrompt und abortStatement in der Operation PutBot festlegen.

Wenn Sie eine Lambda-Funktion mit einer Absicht verwenden, gibt die Lambda-Funktion möglicherweise eine Antwort zurück, die Amazon Lex anweist, einen Benutzer nach der Absicht zu fragen. Wenn die Lambda-Funktion keine solche Meldung ausgibt, verwendet Amazon Lex die Aufforderung zur Erläuterung.

Slot-Eingabeaufforderungen

Geben Sie mindestens eine Aufforderungsmitteilung für jeden der erforderlichen Slots in einer Absicht an. Zur Laufzeit verwendet Amazon Lex eine dieser Nachrichten, um den Benutzer aufzufordern, einen Wert für den Slot einzugeben. Beispielsweise für einen cityName Slot ist die folgende Aufforderung gültig:

Which city would you like to fly to?

Sie können eine oder mehrere Eingabeaufforderungen für jeden Slot mithilfe der Konsole einrichten. Mit der Operation PutIntent können Sie auch Gruppen von Eingabeaufforderungen erstellen. Weitere Informationen finden Sie unter Mitteilungsgruppen.

Antworten

Verwenden Sie den Abschnitt Responses (Antworten) in der Konsole, um dynamische Unterhaltungen für Ihren Bot zu erstellen. Sie können eine oder mehrere Mitteilungsgruppen für eine Antwort erstellen. Zur Laufzeit erstellt Amazon Lex eine Antwort, indem es eine Nachricht aus jeder Nachrichtengruppe auswählt. Weitere Informationen zu Mitteilungsgruppen finden Sie unter Mitteilungsgruppen.

Ihre erste Mitteilungsgruppe könnte beispielsweise unterschiedliche Grußformeln enthalten: „Hallo”, „Guten Tag” und „Grüße”. Die zweite Mitteilungsgruppe könnte verschiedene Einführungen enthalten: „Ich bin der Reservierungs-Bot” und „Dies ist der Reservierungs-Bot.” Eine dritte Mitteilungsgruppe könnte die Fähigkeiten des Bots beschreiben: „Ich helfe Ihnen bei Reservierungen von Mietwagen und Hotelzimmern”, „Sie können Mietwagen reservieren und Hotelbuchungen vornehmen” und „Ich kann Ihnen dabei helfen, ein Auto zu mieten und ein Hotelzimmer zu buchen.”

Lex verwendet eine Mitteilung aus jeder Mitteilungsgruppe, um die Antworten in einem Gespräch dynamisch zu erstellen. Eine Interaktion könnte beispielsweise die folgende sein:


                        Eine mögliche Konversation mit einem Bot.

Ein anderes könnte das Folgende sein:


                        Eine weitere mögliche Konversation mit einem Bot.

In beiden Fällen kann der Benutzer mit einer neuen Absicht antworten, wie beispielsweise der Absicht BookCar oder BookHotel.

Sie können den Bot so einrichten, dass er als Antwort eine Folgefrage stellt. Für die vorausgehende Interaktion könnten Sie beispielsweise eine vierte Mitteilungsgruppe mit den folgenden Fragen erstellen: „Kann ich Ihnen helfen, ein Auto oder ein Hotelzimmer zu reservieren?”, „Möchten Sie jetzt eine Reservierung vornehmen?” und „Gibt es etwas, das ich für Sie tun kann?” Für Nachrichten, die „Nein” als Antwort enthalten, können Sie eine Folge-Eingabeaufforderung erstellen. Folgendes ist ein Beispiel:


                        Aufforderung zur Nachverfolgung in einer Konversation mit einem Bot.

Um eine Folge-Eingabeaufforderung zu erstellen, wählen Sie Wait for user reply (Auf Antwort des Benutzers warten). Geben Sie dann die Nachricht oder die Nachrichten ein, die Sie senden möchten, wenn der Benutzer „Nein” sagt. Wenn Sie eine Antwort erstellen, die als Folge-Eingabeaufforderung verwendet werden soll, müssen Sie auch eine geeignete Aussage für den Fall festlegen, dass die Antwort auf die Aussage „Nein” lautet. In der folgenden Abbildung finden Sie ein Beispiel:


                        Nachrichtenkonfiguration für den Fall, dass ein Benutzer „Nein“ sagt.

Verwenden Sie die Operation PutIntent, um mit der API Antworten zu einer Absicht hinzuzufügen. Um eine Antwort festzulegen, richten Sie das Feld conclusionStatement in der Anfrage PutIntent ein. Um eine Folge-Eingabeaufforderung festzulegen, richten Sie das Feld followUpPrompt ein und fügen Sie die Aussage ein, die gesendet werden soll, wenn der Benutzer mit „Nein” antwortet. Sie können nicht das Feld conclusionStatement und das Feld followUpPrompt gleichzeitig für dieselbe Absicht einrichten.

Unterstützte Mitteilungsformate

Wenn Sie diePostText Operation verwenden oder wenn Sie diePostContent Operation mit demAccept Header auf verwendentext/plain;charset=utf8, unterstützt Amazon Lex Nachrichten in den folgenden Formaten:

  • PlainText— Die Nachricht enthält einfachen UTF-8-Text.

  • SSML— Die Nachricht enthält Text, der für die Sprachausgabe formatiert ist.

  • CustomPayload— Die Nachricht enthält ein benutzerdefiniertes Format, das Sie für Ihren Kunden erstellt haben. Sie können die Nutzlast definieren, um den Anforderungen Ihrer Anwendung zu entsprechen.

  • Composite— Die Nachricht ist eine Sammlung von Nachrichten, eine aus jeder Nachrichtengruppe. Weitere Informationen zu Mitteilungsgruppen finden Sie unter Mitteilungsgruppen.

Standardmäßig gibt Amazon Lex eine der für eine bestimmte Aufforderung definierten Nachrichten zurück. Wenn Sie beispielsweise fünf Nachrichten definieren, um einen Slot-Wert abzurufen, wählt Amazon Lex eine der Nachrichten nach dem Zufallsprinzip aus und gibt sie an den Client zurück.

Wenn Sie möchten, dass Amazon Lex in einer Laufzeitanfrage einen bestimmten Nachrichtentyp an den Client zurückgibt, legen Sie denx-amzn-lex:accept-content-types Anforderungsparameter fest. Die Antwort ist auf den angefragten Typ bzw. die angefragten Typen beschränkt. Wenn es mehr als eine Nachricht des angegebenen Typs gibt, gibt Amazon Lex eine nach dem Zufallsprinzip zurück. Weitere Informationen zum Header x-amz-lex:accept-content-types finden Sie unter Einrichten des Antworttyps.

Mitteilungsgruppen

Eine Mitteilungsgruppe ist eine Gruppe von geeigneten Antworten auf eine bestimmte Eingabeaufforderung. Verwenden Sie Mitteilungsgruppen, wenn Sie möchten, dass der Bot die Antworten in einem Gespräch dynamisch erstellt. Wenn Amazon Lex eine Antwort an die Client-Anwendung zurückgibt, wählt es nach dem Zufallsprinzip eine Nachricht aus jeder Gruppe aus. Sie können maximal fünf Mitteilungsgruppen für jede Antwort erstellen. Jede Gruppe kann maximal fünf Mitteilungen enthalten. Informationen zum Erstellen von Mitteilungsgruppen in der Konsole finden Sie unter Antworten.

Zum Erstellen einer Mitteilungsgruppe können Sie die Konsole verwenden oder Sie können die Operationen PutBot, PutIntent oder PutSlotType verwenden, um einer Mitteilung eine Gruppennummer zuzuweisen. Wenn Sie keine Nachrichtengruppe oder nur eine Nachrichtengruppe erstellen, sendet Amazon Lex eine einzelne Nachricht in dasMessage Feld. Client-Anwendungen erhalten nur dann mehrere Mitteilungen in einer Antwort, wenn Sie mehr als eine Mitteilungsgruppe in der Konsole erstellt haben oder wenn Sie beim Erstellen oder Aktualisieren einer Absicht mit der Operation PutIntent mehr als eine Mitteilungsgruppe erstellen,

Wenn Amazon Lex eine Nachricht von einer Gruppe sendet, enthält dasMessage Feld der Antwort ein maskiertes JSON-Objekt, das die Nachrichten enthält. Das folgende Beispiel zeigt den Inhalt des Felds Message, wenn es mehrere Mitteilungen enthält.

Anmerkung

Das Beispiel ist aus Gründen der Lesbarkeit formatiert. Eine Antwort enthält keine Zeilenumbrüche.

{\"messages\":[ {\"type\":\"PlainText\",\"group\":0,\"value\":\"Plain text\"}, {\"type\":\"SSML\",\"group\":1,\"value\":\"SSML text\"}, {\"type\":\"CustomPayload\",\"group\":2,\"value\":\"Custom payload\"} ]}

Sie können das Format für die Mitteilungen festlegen. Dabei kann es sich um eines der folgenden Formate handeln:

  • PlainText— Die Nachricht ist in reinem UTF-8-Text.

  • SSML – Die Mitteilung wird in Speech Synthesis Markup Language (SSML) verfasst.

  • CustomPayload— Die Nachricht hat ein benutzerdefiniertes Format, das Sie angegeben haben.

Um das Format der Mitteilungen zu kontrollieren, das die Operationen PostContent und PostText im Feld Message zurückgeben, richten Sie das Anfrageattribut x-amz-lex:accept-content-types ein. Wenn Sie beispielsweise den Header auf die folgende Option festlegen, erhalten Sie nur Klartext- und SSML-Mitteilungen in der Antwort:

x-amz-lex:accept-content-types: PlainText,SSML

Wenn Sie ein bestimmtes Mitteilungsformat anfragen und eine Mitteilungsgruppe keine Mitteilung in diesem Format enthält, erhalten Sie die Ausnahme NoUsableMessageException. Wenn Sie eine Mitteilungsgruppe verwenden, um Mitteilungen nach Typ zu gruppieren, verwenden Sie nicht den Header x-amz-lex:accept-content-types.

Weitere Informationen zum Header x-amz-lex:accept-content-types finden Sie unter Einrichten des Antworttyps.

Antwort-Karten

Anmerkung

Antwortkarten funktionieren nicht mit dem Amazon Connect Connect-Chat. Ähnliche Funktionen finden Sie jedoch unter Hinzufügen interaktiver Nachrichten zum Chat.

Ein Antwortkarte enthält eine Reihe von geeigneten Reaktionen auf eine Eingabeaufforderung. Verwenden Sie Antwortkarten, um Interaktionen für die Benutzer zu vereinfachen und die Genauigkeit des Bots zu steigern, indem Rechtschreibfehler in Textinteraktionen reduziert werden. Sie können für jede Aufforderung, die Amazon Lex an Ihre Client-Anwendung sendet, eine Antwortkarte senden. Sie können Antwortkarten mit Facebook Messenger, Slack, Twilio und eigenen Client-Anwendungen verwenden.

In einer Taxianwendung können Sie beispielsweise in der Antwortkarte eine Option für "Home" konfigurieren und als Wert die Anschrift des Benutzers zuweisen. Wenn der Benutzer diese Option auswählt, erhält Amazon Lex die gesamte Adresse als Eingabetext. Sehen Sie sich das folgende Bild an:


                    Beispiel-Antwortkarte.

Sie können eine Antwortkarte für die folgenden Aufforderungen definieren:

  • Abschlussansage

  • Bestätigungsaufforderung

  • Follow-up-Aufforderung

  • Ablehnung

  • Slot-Typ-Äußerungen

Sie können für jede Aufforderung nur eine Antwortkarte definieren.

Sie konfigurieren Antwortkarten, wenn Sie eine Absicht erstellen. Sie können mit der Konsole oder der Operation PutIntent zum Zeitpunkt der Erstellung eine statische Antwortkarte definieren. Oder Sie können zur Laufzeit eine dynamische Antwortkarte in einer Lambda-Funktion definieren. Wenn Sie statische und dynamische Antwortkarten definieren, haben die dynamischen Antwortkarten Vorrang.

Amazon Lex versendet Antwortkarten in dem Format, das der Kunde versteht. Die Antwortkarten werden für Facebook Messenger, Slack und Twilio konvertiert. Für andere Kunden sendet Amazon Lex eine JSON-Struktur in derPostText Antwort. Wenn der Kunde beispielsweise Facebook Messenger ist, wandelt Amazon Lex die Antwortkarte in eine generische Vorlage um. Weitere Informationen zu generischen Facebook Messenger-Vorlagen erhalten Sie unter Generic Template auf der Facebook-Website. Ein Beispiel für die JSON-Struktur erhalten Sie unter Dynamisches Generieren von Antwortkarten.

Sie können Antwortkarten nur mit der Operation PostText verwenden. Sie können Antwortkarten nicht mit der Operation PostContent verwenden.

Definieren statischer Antwortkarten

Definieren Sie statische Antwortkarten mit derPutBot Operation oder der Amazon Lex Lex-Konsole, wenn Sie eine Absicht erstellen. Eine statische Antwortkarte wird zusammen mit der Absicht definiert. Verwenden Sie eine statische Antwortkarte, wenn die Antworten feststehen. Nehmen wir an, dass Sie einen Bot mit einer Absicht erstellen, die über einen Slot für das Aroma verfügt. Beim Definieren des Aroma-Slots geben Sie Aufforderungen an, wie im folgenden Konsolen-Screenshot gezeigt:


                        Der Absichtseditor in der Konsole.

Bei der Definition von Eingabeaufforderungen können Sie optional eine Antwortkarte zuordnen und Details mit demPutBot Vorgang definieren, oder, wie im folgenden Beispiel gezeigt, in der Amazon Lex Lex-Konsole:


                        Die Konsole zeigt den Antwortkarteneditor.

Nehmen wir nun an, dass der Bot in Facebook Messenger integriert wurde. Der Benutzer kann auf die Schaltflächen klicken, um ein Aroma zu wählen, siehe die folgende Abbildung:


                        Eine Antwortkarte in Facebook Messenger.

Zum Anpassen des Inhalts einer Antwortkarte können Sie auf die Sitzungsattribute verweisen. Zur Laufzeit ersetzt Amazon Lex diese Verweise durch entsprechende Werte aus den Sitzungsattributen. Weitere Informationen finden Sie unter Festlegen von Sitzungsattributen. Ein Beispiel finden Sie unter Eine Antwortkarte verwenden.

Dynamisches Generieren von Antwortkarten

Um Antwortkarten zur Laufzeit dynamisch zu generieren, verwenden Sie die Lambda-Initialisierungs- und Validierungsfunktion für die Absicht. Verwenden Sie eine dynamische Antwortkarte, wenn die Antworten zur Laufzeit in der Lambda-Funktion ermittelt werden. Als Reaktion auf Benutzereingaben generiert die Lambda-Funktion eine Antwortkarte und gibt sie imdialogAction Abschnitt der Antwort zurück. Weitere Informationen finden Sie unter Reaktion-Format.

Im Folgenden finden Sie eine Teilantwort einer Lambda-Funktion, die dasresponseCard Element zeigt. Sie generiert eine Benutzererfahrung, die der im vorhergehenden Abschnitt gezeigten ähnelt.

responseCard: { "version": 1, "contentType": "application/vnd.amazonaws.card.generic", "genericAttachments": [ { "title": "What Flavor?", "subtitle": "What flavor do you want?", "imageUrl": "Link to image", "attachmentLinkUrl": "Link to attachment", "buttons": [ { "text": "Lemon", "value": "lemon" }, { "text": "Raspberry", "value": "raspberry" }, { "text": "Plain", "value": "plain" } ] } ] }

Ein Beispiel finden Sie unter Termin vereinbaren.