AWS Lambda Antwortformat für Lex V2 - Amazon Lex

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.

AWS Lambda Antwortformat für Lex V2

Der zweite Schritt bei der Integration einer Lambda-Funktion in Ihren Amazon Lex V2-Bot besteht darin, die Felder in der Lambda-Funktionsantwort zu verstehen und zu bestimmen, welche Parameter Sie manipulieren möchten. Das folgende JSON Objekt zeigt das allgemeine Format einer Lambda-Antwort, die an Amazon Lex V2 zurückgegeben wird:

{ "sessionState": { // see Status der Sitzung for details about the structure }, "messages": [ { "contentType": "CustomPayload | ImageResponseCard | PlainText | SSML", "content": string, "imageResponseCard": { "title": string, "subtitle": string, "imageUrl": string, "buttons": [ { "text": string, "value": string }, ... ] } }, ... ], "requestAttributes": { string: string, ... } }

Jedes Feld in der Antwort wird unten beschrieben:

Der Status der Konversation zwischen dem Benutzer und Ihrem Amazon Lex V2-Bot, den Sie zurückgeben möchten. Einzelheiten Status der Sitzung zur Struktur finden Sie unter. Dieses Feld ist immer erforderlich.

Eine Liste von Nachrichten, die Amazon Lex V2 für die nächste Runde der Konversation an den Kunden zurücksendet. Wenn contentType Sie, oder angeben PlainTextCustomPayload, schreiben Sie die NachrichtSSML, die Sie an den Kunden zurücksenden möchten, in das content Feld. Falls das von contentType Ihnen angegebene istImageResponseCard, geben Sie die Details der Karte in das imageResponseCard Feld ein. Wenn Sie keine Nachrichten bereitstellen, verwendet Amazon Lex V2 die entsprechende Nachricht, die bei der Erstellung des Bots definiert wurde.

Das messages Feld ist erforderlich, wenn dialogAction.type es ElicitIntent oder istConfirmIntent.

Jedes Element in der Liste ist eine Struktur im folgenden Format, die Informationen über eine Nachricht enthält, die an den Benutzer zurückgegeben werden soll. Ein Beispiel:

{ "contentType": "CustomPayload | ImageResponseCard | PlainText | SSML", "content": string, "imageResponseCard": { "title": string, "subtitle": string, "imageUrl": string, "buttons": [ { "text": string, "value": string }, ... ] } }

Im Folgenden finden Sie eine Beschreibung für jedes Feld:

  • contentType— Der Typ der zu verwendenden Nachricht.

    CustomPayload— Eine Antwortzeichenfolge, die Sie so anpassen können, dass sie Daten oder Metadaten für Ihre Anwendung enthält.

    ImageResponseCard— Ein Bild mit Schaltflächen, die der Kunde auswählen kann. ImageResponseCardWeitere Informationen finden Sie unter.

    PlainText— Eine einfache Textzeichenfolge.

    SSML— Eine Zeichenfolge, die die Speech Synthesis Markup Language zur Anpassung der Audioantwort enthält.

  • Inhalt — Die Nachricht, die an den Benutzer gesendet werden soll. Verwenden Sie dieses Feld, wenn der Nachrichtentyp PlainTextCustomPayload, oder istSSML.

  • imageResponseCard— Enthält die Definition der Antwortkarte, die dem Benutzer angezeigt werden soll. Verwenden Sie dieses Feld, wenn der Nachrichtentyp istImageResponseCard. Ordnet einer Struktur zu, die die folgenden Felder enthält:

    • Titel — Der Titel der Antwortkarte.

    • Untertitel — Die Aufforderung an den Benutzer, eine Schaltfläche auszuwählen.

    • imageUrl— Ein Link zu einem Bild für die Karte.

    • Schaltflächen — Eine Liste von Strukturen, die Informationen über eine Schaltfläche enthält. Jede Struktur enthält ein text Feld mit dem anzuzeigenden Text und ein value Feld mit dem Wert, der an Amazon Lex V2 gesendet werden soll, wenn der Kunde diese Schaltfläche auswählt. Sie können bis zu drei Schaltflächen hinzufügen.

Eine Struktur, die anforderungsspezifische Attribute für die Antwort an den Kunden enthält. Weitere Informationen finden Sie unter Einstellung von Anforderungsattributen für Ihren Lex V2-Bot. Dies ist ein optionales Feld.

Erforderliche Felder in der Antwort

Die Lambda-Antwort muss mindestens ein sessionState Objekt enthalten. Geben Sie darin ein dialogAction Objekt an und geben Sie das type Feld an. Je type nachdemdialogAction, welche Felder Sie angeben, gibt es möglicherweise weitere Pflichtfelder für die Lambda-Antwort. Diese Anforderungen werden zusammen mit einigen wenigen Anwendungsbeispielen wie folgt beschrieben:

Delegate lässt Amazon Lex V2 den nächsten Schritt bestimmen. Es sind keine weiteren Felder erforderlich.

{ "sessionState": { "dialogAction": { "type": "Delegate" } }

ElicitIntentfordert den Kunden auf, eine Absicht zu äußern. Sie müssen mindestens eine Nachricht in das messages Feld eingeben, um eine Absicht zu erkennen.

{ "sessionState": { "dialogAction": { "type": "ElicitIntent" }, "messages": [ { "contentType": PlainText, "content": "How can I help you?" } ] }

ElicitSlotfordert den Kunden auf, einen Slot-Wert anzugeben. Sie müssen den Namen des Slots in das slotToElicit Feld im dialogAction Objekt aufnehmen. Sie müssen auch den name von intent in das sessionState Objekt aufnehmen.

{` "sessionState": { "dialogAction": { "slotToElicit": "OriginCity", "type": "ElicitSlot" }, "intent": { "name": "BookFlight" } } }

ConfirmIntentbestätigt die Slot-Werte des Kunden und ob die Absicht bereit ist, erfüllt zu werden. Sie müssen das name sessionState Objekt und das intent noch slots zu bestätigende Objekt angeben. Sie müssen außerdem mindestens eine Nachricht in das messages Feld einfügen, um den Benutzer um eine Bestätigung der Slot-Werte zu bitten. Ihre Nachricht sollte mit „Ja“ oder „Nein“ beantwortet werden. Wenn der Benutzer mit „Ja“ antwortet, setzt Amazon Lex V2 confirmationState die Absicht aufConfirmed. Wenn der Benutzer mit „Nein“ antwortet, setzt Amazon Lex V2 confirmationState die Absicht aufDenied.

{ "sessionState": { "dialogAction": { "type": "ConfirmIntent" }, "intent": { "name": "BookFlight", "slots": { "DepartureDate": { "value": { "originalValue": "tomorrow", "interpretedValue": "2023-05-09", "resolvedValues": [ "2023-05-09" ] } }, "DestinationCity": { "value": { "originalValue": "sf", "interpretedValue": "sf", "resolvedValues": [ "sf" ] } }, "OriginCity": { "value": { "originalValue": "nyc", "interpretedValue": "nyc", "resolvedValues": [ "nyc" ] } } } } }, "messages": [ { "contentType": PlainText, "content": "Okay, you want to fly from {OriginCity} to \ {DestinationCity} on {DepartureDate}. Is that correct?" } ] }

Schließen beendet den Erfüllungsprozess der Absicht und gibt an, dass keine weiteren Antworten vom Benutzer erwartet werden. Sie müssen das name und state von intent in das sessionState Objekt einschließen. Die kompatiblen Absichtszustände sindFailed,Fulfilled, undInProgress.

"sessionState": { "dialogAction": { "type": "Close" }, "intent": { "name": "BookFlight", "state": "Failed | Fulfilled | InProgress" } }