

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 LambdaAntwortformat für Lex V2
<a name="lambda-response-format"></a>

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:

## sessionState
<a name="lambda-response-sessionstate"></a>

Der Status der Konversation zwischen dem Benutzer und Ihrem Amazon Lex V2-Bot, den Sie zurückgeben möchten. Einzelheiten [Status der Sitzung](lambda-common-structures.md#lambda-session-state) zur Struktur finden Sie unter. Dieses Feld ist immer erforderlich.

## messages
<a name="lambda-response-messages"></a>

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 `PlainText``CustomPayload`, schreiben Sie die Nachricht`SSML`, die Sie an den Kunden zurücksenden möchten, in das `content` Feld. Falls das von `contentType` Ihnen angegebene ist`ImageResponseCard`, 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 ist`ConfirmIntent`.

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. Weitere Informationen finden Sie unter [ImageResponseCard](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_ImageResponseCard.html).

  `PlainText`— Eine einfache Textzeichenfolge.

  `SSML`— Eine Zeichenfolge, die die Speech Synthesis Markup Language enthält, um die Audioantwort anzupassen.
+ **Inhalt** — Die Nachricht, die an den Benutzer gesendet werden soll. Verwenden Sie dieses Feld, wenn der Nachrichtentyp `PlainText``CustomPayload`, oder ist`SSML`.
+ **imageResponseCard**— Enthält die Definition der Antwortkarte, die dem Benutzer angezeigt werden soll. Verwenden Sie dieses Feld, wenn der Nachrichtentyp ist`ImageResponseCard`. 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.
  + **buttons** — 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.

## requestAttributes
<a name="lambda-response-requestattributes"></a>

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](context-mgmt-request-attribs.md). Dies ist ein optionales Feld.

## Erforderliche Felder in der Antwort
<a name="lambda-response-required"></a>

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` nachdem`dialogAction`, 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:

### Delegierter
<a name="lambda-response-delegate"></a>

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

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

### ElicitIntent
<a name="lambda-response-elicitintent"></a>

**ElicitIntent**fordert 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?"
        }
    ]
}
```

### ElicitSlot
<a name="lambda-response-elicitslot"></a>

**ElicitSlot**fordert 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"
        }
    }
}
```

### ConfirmIntent
<a name="lambda-response-confirmintent"></a>

**ConfirmIntent**bestä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 zur Bestätigung der Slot-Werte aufzufordern. Ihre Nachricht sollte mit „Ja“ oder „Nein“ beantwortet werden. Wenn der Benutzer mit „Ja“ antwortet, setzt Amazon Lex V2 `confirmationState` die Absicht auf`Confirmed`. Wenn der Benutzer mit „Nein“ antwortet, setzt Amazon Lex V2 `confirmationState` die Absicht auf`Denied`.

```
{
    "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
<a name="lambda-response-close"></a>

**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 sind`Failed`,`Fulfilled`, und`InProgress`.

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