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.
PostContent
Sendet eine Benutzereingabe (Text oder Sprache) an Amazon Lex Kunden verwenden diese API, um zur Laufzeit Text- und Audioanfragen an Amazon Lex zu senden. Amazon Lex interpretiert die Benutzereingaben mithilfe des Machine-Learning-Modells, das es für den Bot entwickelt hat.
Der PostContent
Vorgang unterstützt Audioeingänge bei 8 kHz und 16 kHz. Sie können 8-kHz-Audio verwenden, um eine höhere Spracherkennungsgenauigkeit in Telefonaudioanwendungen zu erreichen.
Als Antwort sendet Amazon Lex die nächste Nachricht zurück, die dem Benutzer übermittelt werden soll. 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 möchten Sie?“. -
Nachdem der Benutzer alle Informationen zur Pizzabestellung eingegeben hat, gibt Amazon Lex möglicherweise eine Antwort mit der Nachricht zurück, dass der Benutzer eine Bestätigung erhält: „Pizza bestellen?“.
-
Nachdem der Benutzer die Bestätigungsaufforderung mit „Ja“ beantwortet hat, gibt Amazon Lex möglicherweise eine Schlussfolgerung zurück: „Danke, Ihre Käsepizza wurde bestellt.“.
Nicht alle Amazon Lex Lex-Nachrichten erfordern eine Antwort vom Benutzer. Zum Beispiel erfordern Schlußfolgerungen keine Antwort. Einige Nachrichten erfordern nur eine Ja- oder Nein-Antwort. 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. die Anzeige der entsprechenden Client-Benutzeroberfläche. Betrachten Sie die folgenden Beispiele:
-
Wenn die Nachricht Slot-Daten abrufen soll, gibt Amazon Lex die folgenden Kontextinformationen zurück:
-
x-amz-lex-dialog-state
Header gesetzt aufElicitSlot
-
x-amz-lex-intent-name
Header, der auf den Namen der Absicht im aktuellen Kontext gesetzt ist -
x-amz-lex-slot-to-elicit
Header, der auf den Slot-Namen gesetztmessage
ist, für den Informationen abgerufen werden -
x-amz-lex-slots
Header, der auf eine Zuordnung von Slots gesetzt ist, die für den Intent konfiguriert sind, mit ihren aktuellen Werten
-
-
Handelt es sich bei der Nachricht um eine Bestätigungsaufforderung, wird der
x-amz-lex-dialog-state
Header auf gesetztConfirmation
und derx-amz-lex-slot-to-elicit
Header weggelassen. -
Handelt es sich bei der Nachricht um eine für die Absicht konfigurierte Klarstellungsaufforderung, die darauf hinweist, dass die Benutzerabsicht nicht verstanden wurde, wird der
x-amz-dialog-state
Header auf gesetztElicitIntent
und derx-amz-slot-to-elicit
Header weggelassen.
Darüber hinaus sendet Amazon Lex auch Ihre sessionAttributes
anwendungsspezifischen Daten zurück. Weitere Informationen finden Sie unter Konversationskontext verwalten.
Anforderungssyntax
POST /bot/botName
/alias/botAlias
/user/userId
/content HTTP/1.1
x-amz-lex-session-attributes: sessionAttributes
x-amz-lex-request-attributes: requestAttributes
Content-Type: contentType
Accept: accept
x-amz-lex-active-contexts: activeContexts
inputStream
URI-Anfrageparameter
Die Anforderung verwendet die folgenden URI-Parameter.
- accept
-
Sie übergeben diesen Wert als
Accept
HTTP-Header.Die Nachricht, die Amazon Lex in der Antwort zurückgibt, kann entweder Text oder Sprache sein, basierend auf dem
Accept
HTTP-Header-Wert in der Anfrage.-
Wenn der Wert ist
text/plain; charset=utf-8
, gibt Amazon Lex Text in der Antwort zurück. -
Beginnt der Wert mit
audio/
, gibt Amazon Lex in der Antwort Sprache zurück. Amazon Lex verwendet Amazon Polly, um die Sprache zu generieren (mit der Konfiguration, die Sie in derAccept
Kopfzeile angegeben haben). Wenn Sie beispielsweiseaudio/mpeg
als Wert angeben, gibt Amazon Lex Sprache im MPEG-Format zurück. -
Wenn der Wert „ist“
audio/pcm
, wird die zurückgegebene Spracheaudio/pcm
im 16-Bit-Little-Endian-Format zurückgegeben. -
Die folgenden Werte sind zulässig:
-
Audio/mpeg
-
Audio/OGG
-
Audio/PCM
-
Text/Einfach; Zeichensatz = UTF-8
-
audio/* (standardmäßig mpeg)
-
-
- activeContexts
-
Eine Liste von Kontexten, die für die Anfrage aktiv sind. 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.
- botAlias
-
Alias des Amazon Lex Lex-Bot.
Erforderlich: Ja
- botName
-
Name des Amazon Lex Lex-Bots.
Erforderlich: Ja
- contentType
-
Sie übergeben diesen Wert als
Content-Type
HTTP-Header.Gibt das Audioformat oder den Text an. Der Header-Wert muss mit einem der folgenden Präfixe beginnen:
-
PCM-Format, Audiodaten müssen in Little-Endian-Byte-Reihenfolge vorliegen.
-
audio/l16; Rate = 16000; Kanäle = 1
-
audio/x-l16; Abtastrate = 16000; Kanalanzahl = 1
-
audio/lpcm; Abtastrate=8000; =16; Kanalzahl=1; sample-size-bits =falsch is-big-endian
-
-
Opus-Format
-
audio/ x-cbr-opus-with -präambel; Größe der Präambel = 0; Bitrate = 256000; =4 frame-size-milliseconds
-
-
Textformat
-
Text/Einfach; Zeichensatz=UTF-8
-
Erforderlich: Ja
-
- requestAttributes
-
Sie übergeben diesen Wert als HTTP-Header.
x-amz-lex-request-attributes
Anforderungsspezifische Informationen, die zwischen Amazon Lex und einer Client-Anwendung übertragen werden. Bei dem Wert muss es sich um eine serialisierte und Base64-kodierte JSON-Map mit String-Schlüsseln und Werten handeln. Die Gesamtgröße der
requestAttributes
sessionAttributes
AND-Header ist auf 12 KB begrenzt.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.
- sessionAttributes
-
Sie übergeben diesen Wert als
x-amz-lex-session-attributes
HTTP-Header.Anwendungsspezifische Informationen, die zwischen Amazon Lex und einer Client-Anwendung ausgetauscht werden. Bei dem Wert muss es sich um eine serialisierte und Base64-kodierte JSON-Map mit String-Schlüsseln und Werten handeln. Die Gesamtgröße der
sessionAttributes
requestAttributes
AND-Header ist auf 12 KB begrenzt.Weitere Informationen finden Sie unter Sitzungsattribute festlegen.
- 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 Anfrage akzeptiert die folgenden Binärdaten.
- inputStream
-
Benutzereingaben im PCM- oder Opus-Audioformat oder im Textformat, wie im
Content-Type
HTTP-Header beschrieben.Sie können Audiodaten zu Amazon Lex streamen oder einen lokalen Puffer erstellen, der alle Audiodaten vor dem Senden aufzeichnet. Im Allgemeinen erzielen Sie eine bessere Leistung, wenn Sie Audiodaten streamen, anstatt die Daten lokal zu puffern.
Erforderlich: Ja
Antwortsyntax
HTTP/1.1 200
Content-Type: contentType
x-amz-lex-intent-name: intentName
x-amz-lex-nlu-intent-confidence: nluIntentConfidence
x-amz-lex-alternative-intents: alternativeIntents
x-amz-lex-slots: slots
x-amz-lex-session-attributes: sessionAttributes
x-amz-lex-sentiment: sentimentResponse
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-input-transcript: inputTranscript
x-amz-lex-encoded-input-transcript: encodedInputTranscript
x-amz-lex-bot-version: botVersion
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. 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.
- 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.
- 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.
Längenbeschränkungen: Minimale Länge beträgt 1 Zeichen. Maximale Länge beträgt 64 Zeichen.
Pattern:
[0-9]+|\$LATEST
- contentType
-
Inhaltstyp, wie im
Accept
HTTP-Header der Anfrage angegeben. - 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 die Absicht des Benutzers ermitteln. Betrachten Sie die folgenden Beispiele:Beispielsweise könnte ein Benutzer eine Absicht äußern („Ich möchte eine Pizza bestellen“). Wenn Amazon Lex die Absicht des Benutzers aus dieser Äußerung nicht ableiten kann, gibt es diesen Dialogstatus 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 einer einfachen Antwort mit „Ja“ oder „Nein“ könnte ein Benutzer mit zusätzlichen Informationen antworten. Zum Beispiel „Ja, aber mach eine 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 aktualisieren Sie das Feld für den Krustentyp oder ändern Sie die Absicht von OrderPizza zu OrderDrink).
-
ElicitSlot
- Amazon Lex erwartet den Wert eines Slots 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 Lambda-Funktion die Absicht erfolgreich erfüllt hat. -
ReadyForFulfillment
- Vermittelt, dass der Kunde die Anfrage 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 reagiert (Sie können konfigurieren, wie oft Amazon Lex einen Benutzer zur Eingabe bestimmter Informationen auffordern kann), oder wenn die Lambda-Funktion die Absicht nicht erfüllt.
Zulässige Werte:
ElicitIntent | ConfirmIntent | ElicitSlot | Fulfilled | ReadyForFulfillment | Failed
-
- encodedInputTranscript
-
Der Text, der zur Bearbeitung der Anfrage verwendet wurde.
Wurde ein Audio-Stream eingegeben, enthält das Feld
encodedInputTranscript
den aus dem Audio-Stream extrahierten Text. Dies ist der Text, der tatsächlich verarbeitet wurde, um Absichten und Slot-Werte zu erkennen. Anhand dieser Informationen können Sie feststellen, ob Amazon Lex das von Ihnen gesendete Audio korrekt verarbeitet.Das
encodedInputTranscript
Feld ist Base-64-codiert. Sie müssen das Feld dekodieren, bevor Sie den Wert verwenden können. - encodedMessage
-
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 wurde, 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.
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.
- inputTranscript
-
Dieser Header ist veraltet.
Der Text, der zur Bearbeitung der Anfrage verwendet wurde.
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.
inputTranscript
In allen anderen Gebietsschemas ist das Feld Null. Sie sollten stattdessen dasencodedInputTranscript
Feld verwenden.Wurde ein Audio-Stream eingegeben, enthält das Feld
inputTranscript
den aus dem Audio-Stream extrahierten Text. Dies ist der Text, der tatsächlich verarbeitet wurde, um Absichten und Slot-Werte zu erkennen. Anhand dieser Informationen können Sie feststellen, ob Amazon Lex das von Ihnen gesendete Audio korrekt verarbeitet. - intentName
-
Aktuelle Benutzerabsicht, die Amazon Lex bekannt ist.
- message
-
Dieser Header ist veraltet.
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.
message
In allen anderen Gebietsschemas ist das Feld Null. Sie sollten stattdessen dasencodedMessage
Feld verwenden.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 wurde, 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.
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
-
- 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.
Die Punktzahl ist eine relative Punktzahl, keine absolute Punktzahl. Die Punktzahl kann sich aufgrund von Verbesserungen an Amazon Lex ändern.
- 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.
- sessionAttributes
-
Karte von Schlüssel/Wert-Paaren, die die sitzungsspezifischen Kontextinformationen darstellen.
- sessionId
-
Die eindeutige Kennung für die Sitzung.
- slots
-
Zuordnung von null oder mehr Intent-Slots (Name/Wert-Paare), die Amazon Lex anhand der Benutzereingabe während der Konversation erkannt hat. Das Feld ist Base-64-codiert.
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
. - slotToElicit
-
Wenn der
dialogState
Wert istElicitSlot
, 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 Aufforderung (oder Aussage), die dem Benutzer übermittelt werden soll. Dies basiert auf der Konfiguration und dem Kontext des Bots. Wenn Amazon Lex beispielsweise die Benutzerabsicht nicht verstanden hat, sendet es die für den Bot
clarificationPrompt
konfigurierten. Wenn die Absicht bestätigt werden muss, bevor die Erfüllungsaktion ausgeführt werden kann, sendet es dieconfirmationPrompt
. Ein anderes Beispiel: Angenommen, die Lambda-Funktion hat die Absicht erfolgreich erfüllt und eine Nachricht zur Übermittlung an den Benutzer gesendet. Dann sendet Amazon Lex diese Nachricht in der Antwort.
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
- 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
- RequestTimeoutException
-
Die Eingabesprache ist zu lang.
HTTP-Statuscode: 408
- UnsupportedMediaTypeException
-
Der Content-Type-Header (
PostContent
API) hat einen ungültigen Wert.HTTP-Statuscode: 415
Beispiele
Beispiel 1
In dieser Anfrage identifiziert der URI einen Bot (Traffic), eine Bot-Version ($LATEST) und einen Endbenutzernamen (someuser). Der Content-Type
Header identifiziert das Format des Audios im Hauptteil. Amazon Lex unterstützt auch andere Formate. Um Audio bei Bedarf von einem Format in ein anderes zu konvertieren, können Sie die Open-Source-Software SoX verwenden. Sie geben das Format an, in dem Sie die Antwort erhalten möchten, indem Sie den Accept
HTTP-Header hinzufügen.
In der Antwort zeigt der x-amz-lex-message
Header die Antwort, die Amazon Lex zurückgegeben hat. Der Client kann diese Antwort dann an den Benutzer senden. Dieselbe Nachricht wird im Audio/MPEG-Format durch Blockcodierung (wie gewünscht) gesendet.
Beispielanforderung
"POST /bot/Traffic/alias/$LATEST/user/someuser/content HTTP/1.1[\r][\n]"
"x-amz-lex-session-attributes: eyJ1c2VyTmFtZSI6IkJvYiJ9[\r][\n]"
"Content-Type: audio/x-l16; channel-count=1; sample-rate=16000f[\r][\n]"
"Accept: audio/mpeg[\r][\n]"
"Host: runtime.lex.us-east-1.amazonaws.com[\r][\n]"
"Authorization: AWS4-HMAC-SHA256 Credential=BLANKED_OUT/20161230/us-east-1/lex/aws4_request,
SignedHeaders=accept;content-type;host;x-amz-content-sha256;x-amz-date;x-amz-lex-session-attributes, Signature=78ca5b54ea3f64a17ff7522de02cd90a9acd2365b45a9ce9b96ea105bb1c7ec2[\r][\n]"
"X-Amz-Date: 20161230T181426Z[\r][\n]"
"X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855[\r][\n]"
"Transfer-Encoding: chunked[\r][\n]"
"Connection: Keep-Alive[\r][\n]"
"User-Agent: Apache-HttpClient/4.5.x (Java/1.8.0_112)[\r][\n]"
"Accept-Encoding: gzip,deflate[\r][\n]"
"[\r][\n]"
"1000[\r][\n]"
"[0x7][0x0][0x7][0x0][\n]"
"[0x0][0x7][0x0][0xfc][0xff][\n]"
"[0x0][\n]"
…
Beispielantwort
"HTTP/1.1 200 OK[\r][\n]"
"x-amzn-RequestId: cc8b34af-cebb-11e6-a35c-55f3a992f28d[\r][\n]"
"x-amz-lex-message: Sorry, can you repeat that?[\r][\n]"
"x-amz-lex-dialog-state: ElicitIntent[\r][\n]"
"x-amz-lex-session-attributes: eyJ1c2VyTmFtZSI6IkJvYiJ9[\r][\n]"
"Content-Type: audio/mpeg[\r][\n]"
"Transfer-Encoding: chunked[\r][\n]"
"Date: Fri, 30 Dec 2016 18:14:28 GMT[\r][\n]"
"[\r][\n]"
"2000[\r][\n]"
"ID3[0x4][0x0][0x0][0x0][0x0][0x0]#TSSE[0x0][0x0][0x0][0xf][0x0][0x0][0x3]Lavf57.41.100[0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0xff][0xf3]`[0xc4][0x0][0x1b]{[0x8d][0xe8][0x1]C[0x18][0x1][0x0]J[0xe0]`b[0xdd][0xd1][0xb][0xfd][0x11][0xdf][0xfe]";[0xbb][0xbb][0x9f][0xee][0xee][0xee][0xee]|DDD/[0xff][0xff][0xff][0xff]www?D[0xf7]w^?[0xff][0xfa]h[0x88][0x85][0xfe][0x88][0x88][0x88][[0xa2]'[0xff][0xfa]"{[0x9f][0xe8][0x88]]D[0xeb][0xbb][0xbb][0xa2]!u[0xfd][0xdd][0xdf][0x88][0x94][0x0]F[0xef][0xa1]8[0x0][0x82]w[0x88]N[0x0][0x0][0x9b][0xbb][0xe8][0xe
…
Weitere Informationen finden Sie unter:
Weitere Informationen zur Verwendung dieser API in einem der AWS sprachspezifischen SDKs finden Sie im Folgenden: