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 slotToElicit
dialogState
,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:
-
dialogState
eingestellt auf ElicitSlot -
intentName
auf den Namen der Absicht im aktuellen Kontext gesetzt -
slotToElicit
auf den Slot-Namen gesetzt, für denmessage
Informationen abgerufen werden -
slots
wird 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 undSlotToElicit
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 undslotToElicit
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
OperationPostContent
PostText
, 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ück
dialogState
. 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 gesetztvalueSelectionStrategy
istORIGINAL_VALUE
, wird der vom Benutzer angegebene Wert zurückgegeben, wenn der Benutzerwert den Slot-Werten ähnelt. Wenn aufTOP_RESOLUTION
Amazon Lex gesetztvalueSelectionStrategy
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: