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

PostText

Sendet Benutzereingaben an Amazon Lex. Client-Anwendungen können diese API verwenden, um zur Laufzeit Anfragen an Amazon Lex zu senden. Amazon Lex interpretiert dann die Benutzereingaben mithilfe des Machine-Learning-Modells, das es für den Bot erstellt hat.

Als Antwort gibt Amazon Lex den nächsten zurückmessage, um dem Benutzer eine Option responseCard zur Anzeige mitzuteilen. Betrachten Sie die folgenden Beispielnachrichten:

  • Bei einer Benutzereingabe „Ich hätte gerne eine Pizza“ gibt Amazon Lex möglicherweise eine Antwort mit einer Nachricht zurück, die Slot-Daten ausgibt (z. B. PizzaSize): „Welche Pizzagröße hätten Sie gerne?“

  • Nachdem der Benutzer alle Informationen zur Pizzabestellung eingegeben hat, sendet Amazon Lex möglicherweise eine Antwort mit der Nachricht zurück, dass der Benutzer die Bestätigung „Mit der Pizzabestellung fortfahren?“ erhält.

  • Nachdem der Benutzer auf eine Bestätigungsaufforderung mit „Ja“ geantwortet hat, gibt Amazon Lex möglicherweise eine Schlussfolgerung zurück: „Danke, Ihre Käsepizza wurde bestellt.“.

Nicht alle Amazon Lex Lex-Nachrichten erfordern eine Benutzerantwort. Für eine Schlußfolgerung ist beispielsweise keine Antwort erforderlich. Für einige Nachrichten ist nur eine Benutzerantwort mit „Ja“ oder „Nein“ erforderlich. Darüber hinaus bietet Amazon Lex zusätzlichen Kontext zu der message Nachricht in der Antwort, den Sie verwenden können, um das Kundenverhalten zu verbessern, z. B. um die entsprechende Client-Benutzeroberfläche anzuzeigen. Dies sind die slots Felder slotToElicitdialogState,intentName, und in der Antwort. Betrachten Sie die folgenden Beispiele:

  • Wenn die Nachricht Slot-Daten abrufen soll, gibt Amazon Lex die folgenden Kontextinformationen zurück:

    • dialogStateeingestellt auf ElicitSlot

    • intentNameauf den Namen der Absicht im aktuellen Kontext gesetzt

    • slotToElicitauf den Slot-Namen gesetzt, für den message Informationen abgerufen werden

    • slotswird auf eine Karte von Slots gesetzt, die für den Intent konfiguriert sind und deren Werte aktuell bekannt sind

  • Handelt es sich bei der Meldung um eine Bestätigungsaufforderung, dialogState ist der Wert auf Null gesetzt ConfirmIntent und SlotToElicit wird auf Null gesetzt.

  • Handelt es sich bei der Meldung um eine Klarstellungsaufforderung (für die Absicht konfiguriert), die darauf hinweist, dass die Benutzerabsicht nicht verstanden wurde, dialogState wird die auf Null gesetzt ElicitIntent und slotToElicit auf Null gesetzt.

Darüber hinaus sendet Amazon Lex auch Ihre anwendungsspezifische sessionAttributes zurück. Weitere Informationen finden Sie unter Konversationskontext verwalten.

Anforderungssyntax

POST /bot/botName/alias/botAlias/user/userId/text HTTP/1.1 Content-type: application/json { "activeContexts": [ { "name": "string", "parameters": { "string" : "string" }, "timeToLive": { "timeToLiveInSeconds": number, "turnsToLive": number } } ], "inputText": "string", "requestAttributes": { "string" : "string" }, "sessionAttributes": { "string" : "string" } }

URI-Anfrageparameter

Die Anforderung verwendet die folgenden URI-Parameter.

botAlias

Der Alias des Amazon Lex Lex-Bot.

Erforderlich: Ja

botName

Der Name des Amazon Lex-Bots.

Erforderlich: Ja

userId

Die ID des Benutzers der Client-Anwendung. Amazon Lex verwendet dies, um die Konversation eines Benutzers mit Ihrem Bot zu identifizieren. Zur Laufzeit muss jede Anfrage das userID Feld enthalten.

Bei der Entscheidung, welche Benutzer-ID für Ihre Anwendung verwendet werden soll, sollten Sie die folgenden Faktoren berücksichtigen.

  • Das userID Feld darf keine persönlich identifizierbaren Informationen des Benutzers enthalten, z. B. Namen, persönliche Identifikationsnummern oder andere persönliche Daten des Endbenutzers.

  • Wenn Sie möchten, dass ein Benutzer eine Konversation auf einem Gerät beginnt und auf einem anderen Gerät fortsetzt, verwenden Sie eine benutzerspezifische Kennung.

  • Wenn Sie möchten, dass derselbe Benutzer zwei unabhängige Konversationen auf zwei verschiedenen Geräten führen kann, wählen Sie eine gerätespezifische Kennung.

  • Ein Benutzer kann nicht zwei unabhängige Konversationen mit zwei verschiedenen Versionen desselben Bots führen. Beispielsweise kann ein Benutzer keine Konversation mit den PROD- und BETA-Versionen desselben Bots führen. Wenn Sie davon ausgehen, dass ein Benutzer beispielsweise beim Testen eine Konversation mit zwei verschiedenen Versionen führen muss, fügen Sie den Bot-Alias in die Benutzer-ID ein, um die beiden Konversationen voneinander zu trennen.

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

inputText

Der Text, den der Benutzer eingegeben hat (Amazon Lex interpretiert diesen Text).

Wenn Sie die AWS-CLI verwenden, können Sie im --input-text Parameter keine URL übergeben. Übergeben Sie die URL stattdessen mithilfe des --cli-input-json Parameters.

Typ: Zeichenfolge

Längenbeschränkungen: Minimale Länge von 1. Maximale Länge von 1 024.

Erforderlich: Ja

requestAttributes

Anforderungsspezifische Informationen, die zwischen Amazon Lex und einer Client-Anwendung übertragen werden.

Der Namespace x-amz-lex: ist für spezielle Attribute reserviert. Erstellen Sie keine Anforderungsattribute mit dem Präfixx-amz-lex:.

Weitere Informationen finden Sie unter Anforderungsattribute festlegen.

Typ: Abbildung einer Zeichenfolge auf eine Zeichenfolge

Erforderlich: Nein

sessionAttributes

Anwendungsspezifische Informationen, die zwischen Amazon Lex und einer Client-Anwendung ausgetauscht werden.

Weitere Informationen finden Sie unter Sitzungsattribute einrichten.

Typ: Abbildung einer Zeichenfolge auf eine Zeichenfolge

Erforderlich: Nein

Antwortsyntax

HTTP/1.1 200 Content-type: application/json { "activeContexts": [ { "name": "string", "parameters": { "string" : "string" }, "timeToLive": { "timeToLiveInSeconds": number, "turnsToLive": number } } ], "alternativeIntents": [ { "intentName": "string", "nluIntentConfidence": { "score": number }, "slots": { "string" : "string" } } ], "botVersion": "string", "dialogState": "string", "intentName": "string", "message": "string", "messageFormat": "string", "nluIntentConfidence": { "score": number }, "responseCard": { "contentType": "string", "genericAttachments": [ { "attachmentLinkUrl": "string", "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subTitle": "string", "title": "string" } ], "version": "string" }, "sentimentResponse": { "sentimentLabel": "string", "sentimentScore": "string" }, "sessionAttributes": { "string" : "string" }, "sessionId": "string", "slots": { "string" : "string" }, "slotToElicit": "string" }

Antwortelemente

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

Die folgenden Daten werden vom Service im JSON-Format zurückgegeben.

activeContexts

Eine Liste der aktiven Kontexte für die Sitzung. Ein Kontext kann festgelegt werden, wenn eine Absicht erfüllt ist, oder durch Aufrufen der PutSession Operation PostContentPostText, oder.

Sie können einen Kontext verwenden, um die Absichten zu steuern, die einer Absicht folgen können, oder um den Betrieb Ihrer Anwendung zu ändern.

Typ: Array von ActiveContext-Objekten

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

alternativeIntents

Ein bis vier alternative Absichten, die auf die Absicht des Benutzers zutreffen können.

Jede Alternative beinhaltet eine Bewertung, die angibt, wie sicher Amazon Lex ist, dass die Absicht mit der Absicht des Benutzers übereinstimmt. Die Absichten sind nach dem Konfidenzwert sortiert.

Typ: Array von PredictedIntent-Objekten

Array-Mitglieder: Maximale Anzahl von 4 Elementen.

botVersion

Die Version des Bots, der auf die Konversation geantwortet hat. Anhand dieser Informationen können Sie feststellen, ob eine Version eines Bots besser abschneidet als eine andere Version.

Typ: Zeichenfolge

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

Pattern: [0-9]+|\$LATEST

dialogState

Identifiziert den aktuellen Status der Benutzerinteraktion. Amazon Lex gibt einen der folgenden Werte als zurückdialogState. Der Kunde kann diese Informationen optional verwenden, um die Benutzeroberfläche anzupassen.

  • ElicitIntent- Amazon Lex möchte Benutzerabsichten wecken.

    Beispielsweise könnte ein Benutzer eine Absicht äußern („Ich möchte eine Pizza bestellen“). Wenn Amazon Lex die Benutzerabsicht aus dieser Äußerung nicht ableiten kann, gibt es diesen DialogState zurück.

  • ConfirmIntent- Amazon Lex erwartet eine Antwort mit „Ja“ oder „Nein“.

    Amazon Lex möchte beispielsweise eine Bestätigung durch den Benutzer, bevor eine Absicht erfüllt wird.

    Statt eines einfachen „Ja“ oder „Nein“ könnte ein Benutzer mit zusätzlichen Informationen antworten. Zum Beispiel „Ja, aber mach Pizza mit dicker Kruste daraus“ oder „Nein, ich möchte ein Getränk bestellen“. Amazon Lex kann solche zusätzlichen Informationen verarbeiten (in diesen Beispielen den Slot-Wert für den Krustentyp aktualisieren oder die Absicht von OrderPizza zu ändern OrderDrink).

  • ElicitSlot- Amazon Lex erwartet einen Slot-Wert für die aktuelle Absicht.

    Nehmen wir zum Beispiel an, dass Amazon Lex in der Antwort die folgende Nachricht sendet: „Welche Pizzagröße hätten Sie gerne?“. Ein Benutzer könnte mit dem Slot-Wert antworten (z. B. „mittel“). Der Benutzer kann in der Antwort auch zusätzliche Informationen angeben (z. B. „Pizza mit mitteldicker Kruste“). Amazon Lex kann solche zusätzlichen Informationen angemessen verarbeiten.

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

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

  • Failed- Übermittelt, dass die Konversation mit dem Benutzer fehlgeschlagen ist.

    Dies kann verschiedene Gründe haben, z. B. weil der Benutzer nicht angemessen auf Anfragen des Service geantwortet hat (Sie können konfigurieren, wie oft Amazon Lex einen Benutzer zur Eingabe bestimmter Informationen auffordern kann) oder dass die Lambda-Funktion die Absicht nicht erfüllt hat.

Typ: Zeichenfolge

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

intentName

Die aktuelle Benutzerabsicht, die Amazon Lex bekannt ist.

Typ: Zeichenfolge

message

Die Nachricht, die dem Benutzer übermittelt werden soll. Die Nachricht kann aus der Konfiguration des Bots oder aus einer Lambda-Funktion stammen.

Wenn die Absicht nicht mit einer Lambda-Funktion konfiguriert ist oder wenn die Lambda-Funktion Delegate als Antwort zurückgegeben wird, entscheidet Amazon Lex über die nächste Vorgehensweise und wählt auf der Grundlage des aktuellen Interaktionskontextes eine entsprechende Nachricht aus der Konfiguration des Bots aus. dialogAction.type Wenn Amazon Lex beispielsweise Benutzereingaben nicht verstehen kann, verwendet es eine Klarstellungsaufforderung.

Wenn Sie eine Absicht erstellen, können Sie Nachrichten Gruppen zuweisen. Wenn Nachrichten Gruppen zugewiesen werden, gibt Amazon Lex in der Antwort eine Nachricht von jeder Gruppe zurück. Das Nachrichtenfeld ist eine maskierte JSON-Zeichenfolge, die die Nachrichten enthält. Weitere Hinweise zur Struktur der zurückgegebenen JSON-Zeichenfolge finden Sie unterUnterstützte Mitteilungsformate.

Wenn die Lambda-Funktion eine Nachricht zurückgibt, leitet Amazon Lex sie in seiner Antwort an den Client weiter.

Typ: Zeichenfolge

Längenbeschränkungen: Minimale Länge von 1. 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, das von der Lambda-Funktion definiert wird.

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

Typ: Zeichenfolge

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

nluIntentConfidence

Stellt eine Bewertung bereit, die angibt, wie sicher Amazon Lex ist, dass die zurückgegebene Absicht der Absicht des Benutzers entspricht. Die Punktzahl liegt zwischen 0,0 und 1,0. Weitere Informationen finden Sie unter Konfidenzwerte.

Der Wert ist ein relativer Wert, kein absoluter Wert. Die Punktzahl kann sich aufgrund von Verbesserungen an Amazon Lex ändern.

Typ: IntentConfidence Objekt

responseCard

Stellt die Optionen dar, die der Benutzer hat, um auf die aktuelle Aufforderung zu antworten. Die Antwortkarte kann aus der Bot-Konfiguration (wählen Sie in der Amazon Lex Lex-Konsole die Einstellungsschaltfläche neben einem Steckplatz) oder aus einem Code-Hook (Lambda-Funktion) stammen.

Typ: ResponseCard Objekt

sentimentResponse

Das in einer Äußerung zum Ausdruck gebrachte Gefühl.

Wenn der Bot so konfiguriert ist, dass er Äußerungen zur Stimmungsanalyse an Amazon Comprehend sendet, enthält dieses Feld das Ergebnis der Analyse.

Typ: SentimentResponse Objekt

sessionAttributes

Eine Zuordnung von Schlüssel-Wert-Paaren, die die sitzungsspezifischen Kontextinformationen darstellen.

Typ: Abbildung einer Zeichenfolge auf eine Zeichenfolge

sessionId

Eindeutiger Bezeichner für die Sitzung.

Typ: Zeichenfolge

slots

Die Intent-Slots, die Amazon Lex anhand der Benutzereingaben in 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 angebenvalueSelectionStrategy, ist die StandardeinstellungORIGINAL_VALUE.

Typ: Abbildung einer Zeichenfolge auf eine Zeichenfolge

slotToElicit

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

Typ: Zeichenfolge

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

LoopDetectedException

Diese Ausnahme wird nicht verwendet.

HTTP-Statuscode: 508

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: