PutSession - 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.

PutSession

Erstellt eine neue Sitzung oder ändert eine bestehende Sitzung mit einem Amazon Lex Bot. Verwenden Sie diesen Vorgang, damit Ihre Anwendung den Status des Bots festlegen kann.

Weitere Informationen finden Sie im Artikel zum Verwalten von Sitzungen.

Anforderungssyntax

POST /bot/botName/alias/botAlias/user/userId/session HTTP/1.1 Accept: accept Content-type: application/json { "activeContexts": [ { "name": "string", "parameters": { "string" : "string" }, "timeToLive": { "timeToLiveInSeconds": number, "turnsToLive": number } } ], "dialogAction": { "fulfillmentState": "string", "intentName": "string", "message": "string", "messageFormat": "string", "slots": { "string" : "string" }, "slotToElicit": "string", "type": "string" }, "recentIntentSummaryView": [ { "checkpointLabel": "string", "confirmationStatus": "string", "dialogActionType": "string", "fulfillmentState": "string", "intentName": "string", "slots": { "string" : "string" }, "slotToElicit": "string" } ], "sessionAttributes": { "string" : "string" } }

URI-Anfrageparameter

Die Anforderung verwendet die folgenden URI-Parameter.

accept

Die Nachricht, die Amazon Lex in der Antwort zurückgibt, kann je nach Wert dieses Felds entweder text- oder sprachbasiert sein.

  • Wenn der Wert isttext/plain; charset=utf-8, gibt Amazon Lex Text in der Antwort zurück.

  • Beginnt der Wert mitaudio/, gibt Amazon Lex in der Antwort Sprache zurück. Amazon Lex verwendet Amazon Polly, um die Sprache in der von Ihnen angegebenen Konfiguration zu generieren. Wenn Sie beispielsweise audio/mpeg als Wert angeben, gibt Amazon Lex Sprache im MPEG-Format zurück.

  • Wenn der Wert „ist“audio/pcm, wird die Sprache audio/pcm im 16-Bit-Little-Endian-Format zurückgegeben.

  • Die folgenden Werte werden akzeptiert:

    • audio/mpeg

    • audio/ogg

    • audio/pcm

    • audio/*(standardmäßig mpeg)

    • text/plain; charset=utf-8

botAlias

Der Alias, der für den Bot verwendet wird, der die Sitzungsdaten enthält.

Erforderlich: Ja

botName

Der Name des Bots, der die Sitzungsdaten enthält.

Erforderlich: Ja

userId

Die ID des Benutzers der Client-Anwendung. Amazon Lex verwendet dies, um die Konversation eines Benutzers mit Ihrem Bot zu identifizieren.

Längenbeschränkungen: Mindestlänge von 2. Maximale Länge beträgt 100 Zeichen.

Pattern: [0-9a-zA-Z._:-]+

Erforderlich: Ja

Anforderungstext

Die Anforderung akzeptiert die folgenden Daten im JSON-Format.

activeContexts

Eine Liste der für die Anfrage aktiven Kontexte. Ein Kontext kann aktiviert werden, wenn eine vorherige Absicht erfüllt ist, oder indem der Kontext in die Anfrage aufgenommen wird.

Wenn Sie keine Liste von Kontexten angeben, verwendet Amazon Lex die aktuelle Liste der Kontexte für die Sitzung. Wenn Sie eine leere Liste angeben, werden alle Kontexte für die Sitzung gelöscht.

Typ: Array von ActiveContext-Objekten

Array-Mitglieder: Die Mindestanzahl beträgt 0 Elemente. Die maximale Anzahl beträgt 50 Elemente.

Erforderlich: Nein

dialogAction

Legt die nächste Aktion fest, die der Bot ergreifen soll, um die Konversation abzuwickeln.

Typ: DialogAction Objekt

Erforderlich: Nein

recentIntentSummaryView

Eine Zusammenfassung der jüngsten Absichten für den Bot. Sie können die Ansicht mit der Zusammenfassung der Absichten verwenden, um eine Checkpoint-Bezeichnung für eine Absicht festzulegen und die Attribute von Absichten zu ändern. Sie können sie auch verwenden, um Objekte mit einer Zusammenfassung von Absichten zu entfernen oder der Liste hinzuzufügen.

Eine Absicht, die Sie ändern oder der Liste hinzufügen, muss für den Bot sinnvoll sein. Beispielsweise muss der Name der Absicht für den Bot gültig sein. Sie müssen gültige Werte angeben für:

  • intentName

  • Steckplatznamen

  • slotToElict

Wenn Sie den recentIntentSummaryView Parameter in einer PutSession Anfrage senden, ersetzt der Inhalt der neuen Übersichtsansicht die alte Übersichtsansicht. Wenn eine GetSession Anfrage beispielsweise drei Absichten in der Übersichtsansicht zurückgibt und Sie PutSession mit einer Absicht in der Übersichtsansicht aufrufen, gibt der nächste Aufruf von nur eine Absicht zurück. GetSession

Typ: Array von IntentSummary-Objekten

Array-Mitglieder: Die Mindestanzahl beträgt 0 Elemente. Maximale Anzahl von 3 Elementen.

Erforderlich: Nein

sessionAttributes

Karte von Schlüssel/Wert-Paaren, die die sitzungsspezifischen Kontextinformationen darstellen. Es enthält Anwendungsinformationen, die zwischen Amazon Lex und einer Client-Anwendung ausgetauscht werden.

Typ: Abbildung einer Zeichenfolge auf eine Zeichenfolge

Erforderlich: Nein

Antwortsyntax

HTTP/1.1 200 Content-Type: contentType x-amz-lex-intent-name: intentName x-amz-lex-slots: slots x-amz-lex-session-attributes: sessionAttributes x-amz-lex-message: message x-amz-lex-encoded-message: encodedMessage x-amz-lex-message-format: messageFormat x-amz-lex-dialog-state: dialogState x-amz-lex-slot-to-elicit: slotToElicit x-amz-lex-session-id: sessionId x-amz-lex-active-contexts: activeContexts audioStream

Antwortelemente

Wenn die Aktion erfolgreich ist, sendet der Service eine HTTP 200-Antwort zurück.

Die Antwort gibt die folgenden HTTP-Header zurück.

activeContexts

Eine Liste der aktiven Kontexte für die Sitzung.

contentType

Inhaltstyp, wie im Accept HTTP-Header der Anfrage angegeben.

dialogState

  • ConfirmIntent- Amazon Lex erwartet eine Antwort mit „Ja“ oder „Nein“ zur Bestätigung der Absicht, bevor eine Absicht erfüllt wird.

  • ElicitIntent- Amazon Lex möchte die Absicht des Benutzers ermitteln.

  • ElicitSlot- Amazon Lex erwartet den Wert eines Slots für die aktuelle Absicht.

  • Failed- Übermittelt, dass die Konversation mit dem Benutzer fehlgeschlagen ist. Dies kann aus verschiedenen Gründen geschehen, z. B. wenn der Benutzer nicht angemessen auf Anfragen des Dienstes reagiert oder wenn die Lambda-Funktion die Absicht nicht erfüllt.

  • Fulfilled- Übermittelt, dass die Lambda-Funktion die Absicht erfolgreich erfüllt hat.

  • ReadyForFulfillment- Vermittelt, dass der Kunde die Absicht erfüllen muss.

Zulässige Werte: ElicitIntent | ConfirmIntent | ElicitSlot | Fulfilled | ReadyForFulfillment | Failed

encodedMessage

Die nächste Nachricht, die dem Benutzer angezeigt werden soll.

Das encodedMessage Feld ist Base-64-codiert. Sie müssen das Feld dekodieren, bevor Sie den Wert verwenden können.

Längenbeschränkungen: Minimale Länge beträgt 1 Zeichen. Die maximale Länge beträgt 1366.

intentName

Der Name der aktuellen Absicht.

message

Dieser Header ist veraltet.

Die nächste Nachricht, die dem Benutzer angezeigt werden sollte.

Sie können dieses Feld nur in den Gebietsschemas de-DE, en-AU, en-GB, en-US, es-419, es-ES, es-US, fr-CA, fr-FR und it-IT verwenden. messageIn allen anderen Gebietsschemas ist das Feld Null. Sie sollten stattdessen das encodedMessage Feld verwenden.

Längenbeschränkungen: Minimale Länge beträgt 1 Zeichen. Maximale Länge beträgt 1024 Zeichen.

messageFormat

Das Format der Antwortnachricht. Einer der folgenden Werte:

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

  • CustomPayload- Die Nachricht ist ein benutzerdefiniertes Format für den Client.

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

  • Composite- Die Nachricht enthält ein maskiertes JSON-Objekt, das eine oder mehrere Nachrichten aus den Gruppen enthält, denen die Nachrichten bei der Erstellung der Absicht zugewiesen wurden.

Zulässige Werte: PlainText | CustomPayload | SSML | Composite

sessionAttributes

Karte von Schlüssel/Wert-Paaren, die sitzungsspezifische Kontextinformationen darstellen.

sessionId

Eindeutiger Bezeichner für die Sitzung.

slots

Zuordnung von null oder mehr Intent-Slots, die Amazon Lex anhand der Benutzereingabe während der Konversation erkannt hat.

Amazon Lex erstellt eine Auflösungsliste mit wahrscheinlichen Werten für einen Slot. Der zurückgegebene Wert wird durch den valueSelectionStrategy ausgewählten Slot-Typ bestimmt, der bei der Erstellung oder Aktualisierung des Slot-Typs ausgewählt wurde. Wenn auf gesetzt valueSelectionStrategy istORIGINAL_VALUE, wird der vom Benutzer angegebene Wert zurückgegeben, wenn der Benutzerwert den Slot-Werten ähnelt. Wenn auf TOP_RESOLUTION Amazon Lex gesetzt valueSelectionStrategy ist, wird der erste Wert in der Auflösungsliste zurückgegeben oder, falls es keine Auflösungsliste gibt, Null. Wenn Sie kein a angeben, ist valueSelectionStrategy die StandardeinstellungORIGINAL_VALUE.

slotToElicit

Wenn jaElicitSlot, dialogState wird der Name des Slots zurückgegeben, für den Amazon Lex einen Wert ermittelt.

Die Antwort gibt folgendes als HTTP-Hauptteil zurück.

audioStream

Die Audioversion der Nachricht, die dem Benutzer übermittelt werden soll.

Fehler

BadGatewayException

Entweder wird der Amazon Lex Lex-Bot noch erstellt, oder einer der abhängigen Dienste (Amazon Polly, AWS Lambda) ist mit einem internen Servicefehler ausgefallen.

HTTP-Statuscode: 502

BadRequestException

Die Überprüfung der Anfrage ist fehlgeschlagen, es gibt keine brauchbare Nachricht im Kontext, oder der Bot-Build ist fehlgeschlagen, ist noch in Bearbeitung oder enthält noch nicht erstellte Änderungen.

HTTP Status Code: 400

ConflictException

Zwei Kunden verwenden dasselbe AWS-Konto, denselben Amazon Lex Lex-Bot und dieselbe Benutzer-ID.

HTTP-Statuscode: 409

DependencyFailedException

Eine der Abhängigkeiten, wie AWS Lambda oder Amazon Polly, hat eine Ausnahme ausgelöst. Zum Beispiel

  • Wenn Amazon Lex nicht über ausreichende Berechtigungen verfügt, um eine Lambda-Funktion aufzurufen.

  • Wenn die Ausführung einer Lambda-Funktion länger als 30 Sekunden dauert.

  • Wenn eine Fulfillment-Lambda-Funktion eine Delegate Dialogaktion zurückgibt, ohne Slot-Werte zu entfernen.

HTTP-Statuscode: 424

InternalFailureException

Interner Dienstfehler. Versuchen Sie den Anruf erneut.

HTTP Status Code: 500

LimitExceededException

Ein Limit wurde überschritten.

HTTP-Statuscode: 429

NotAcceptableException

Der Accept-Header in der Anfrage hat keinen gültigen Wert.

HTTP-Statuscode: 406

NotFoundException

Die Ressource (z. B. der Amazon Lex Lex-Bot oder ein Alias), auf die verwiesen wird, wurde nicht gefunden.

HTTP Status Code: 404

Weitere Informationen finden Sie unter:

Weitere Informationen zur Verwendung dieser API in einem der sprachspezifischen AWS SDKs finden Sie im Folgenden: