Interpretieren des Eingabeereignisformats - Amazon Lex

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.

Interpretieren des Eingabeereignisformats

Der erste Schritt bei der Integration einer Lambda-Funktion in Ihren Amazon Lex V2-Bot besteht darin, die Felder im Amazon Lex V2-Ereignis zu verstehen und die Informationen aus diesen Feldern zu ermitteln, die Sie beim Schreiben Ihres Skripts verwenden möchten. Das folgende JSON-Objekt zeigt das allgemeine Format eines Amazon Lex V2-Ereignisses, das an eine Lambda-Funktion übergeben wird:

Anmerkung

Das Eingabeformat kann sich ändern, ohne dass eine entsprechende Änderung an der vorgenommen wirdmessageVersion. Ihr Code sollte keinen Fehler auslösen, wenn neue Felder vorhanden sind.

{ "messageVersion": "1.0", "invocationSource": "DialogCodeHook | FulfillmentCodeHook", "inputMode": "DTMF | Speech | Text", "responseContentType": "audio/mpeg | audio/ogg | audio/pcm | text/plain; charset=utf-8", "sessionId": string, "inputTranscript": string, "invocationLabel": string, "bot": { "id": string, "name": string, "localeId": string, "version": string, "aliasId": string, "aliasName": string }, "interpretations": [ { "interpretationSource": "Bedrock | Lex", "intent": { // see Absicht for details about the structure }, "nluConfidence": number, "sentimentResponse": { "sentiment": "MIXED | NEGATIVE | NEUTRAL | POSITIVE", "sentimentScore": { "mixed": number, "negative": number, "neutral": number, "positive": number } } }, ... ], "proposedNextState": { "dialogAction": { "slotToElicit": string, "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot" }, "intent": { // see Absicht for details about the structure }, "prompt": { "attempt": string } }, "requestAttributes": { string: string, ... }, "sessionState": { // see Status der Sitzung for details about the structure }, "transcriptions": [ { "transcription": string, "transcriptionConfidence": number, "resolvedContext": { "intent": string }, "resolvedSlots": { slot name: { // see Slots for details about the structure }, ... } }, ... ] }

Jedes Feld im Eingabeereignis wird unten beschrieben:

Die Version der Nachricht, die das Format der Ereignisdaten identifiziert, die in die Lambda-Funktion eingehen, und das erwartete Format der Antwort von einer Lambda-Funktion.

Anmerkung

Sie konfigurieren diesen Wert, wenn Sie eine Absicht definieren. In der aktuellen Implementierung unterstützt Amazon Lex V2 nur Nachrichtenversion 1.0. Daher nimmt die Konsole 1.0 als Standardwert an und zeigt die Mitteilungsversion nicht.

Der Code-Hook, der die Lambda-Funktion aufgerufen hat. Die folgenden Werte sind möglich:

DialogCodeHook— Amazon Lex V2 hat die Lambda-Funktion nach Eingabe des Benutzers aufgerufen.

FulfillmentCodeHook— Amazon Lex V2 hat die Lambda-Funktion aufgerufen, nachdem alle erforderlichen Slots gefüllt wurden und die Absicht zur Ausführung bereit ist.

Der Modus der Benutzeräußerung. Die möglichen Werte lauten wie folgt:

DTMF— Der Benutzer gibt die Äußerung über eine Touch-Tone-Tastatur ein (Dual Tone Multi-Frequency).

Speech— Der Benutzer sprach die Äußerung.

Text— Der Benutzer hat die Äußerung eingegeben.

Der Modus, in dem der Bot auf den Benutzer reagiert. text/plain; charset=utf-8gibt an, dass die letzte Äußerung geschrieben wurde, während ein Wert, der mit beginnt, audio angibt, dass die letzte Äußerung gesprochen wurde.

Die alphanumerische Sitzungs-ID, die für die Konversation verwendet wurde.

Eine Transkription der Benutzereingabe.

  • Bei der Texteingabe ist dies der Text, den der Benutzer eingegeben hat. Bei DTMF-Eingaben ist dies der Schlüssel, den der Benutzer eingegeben hat.

  • Bei der Spracheingabe ist dies der Text, in den Amazon Lex V2 die Benutzeräußerung konvertiert, um eine Absicht auszulösen oder einen Slot zu füllen.

Ein Wert, der die Antwort angibt, die die Lambda-Funktion aufgerufen hat. Sie können Aufrufbezeichnungen für die erste Antwort, die Slots und die Bestätigungsantwort festlegen.

Informationen über den Bot, der die Anfrage bearbeitet hat, bestehend aus den folgenden Feldern:

  • id — Die Kennung, die dem Bot zugewiesen wurde, als Sie ihn erstellt haben. Sie können die Bot-ID in der Amazon Lex V2-Konsole auf der Seite mit den Bot-Einstellungen sehen.

  • Name — Der Name, den Sie dem Bot bei der Erstellung gegeben haben.

  • LocaleID — Die Kennung des Gebietsschemas, das Sie für Ihren Bot verwendet haben. Eine Liste der Gebietsschemas finden Sie unter. Von Amazon Lex V2 unterstützte Sprachen und Gebietsschemata

  • Version — Die Version des Bots, der die Anfrage bearbeitet hat.

  • aliasID — Die Kennung, die dem Bot-Alias zugewiesen wurde, als Sie ihn erstellt haben. Sie können die Bot-Alias-ID in der Amazon Lex V2-Konsole auf der Seite Aliase sehen. Wenn Sie die Alias-ID nicht in der Liste sehen können, wählen Sie das Zahnradsymbol oben rechts und aktivieren Sie die Alias-ID.

  • AliasName — Der Name, den Sie dem Bot-Alias gegeben haben.

Eine Liste mit Informationen über Absichten, die Amazon Lex V2 für mögliche Übereinstimmungen mit der Äußerung des Benutzers hält. Jedes Element ist eine Struktur, die Informationen über die Übereinstimmung der Äußerung mit einer Absicht im folgenden Format bereitstellt:

{ "intent": { // see Absicht for details about the structure }, "interpretationSource": "Bedrock | Lex", "nluConfidence": number, "sentimentResponse": { "sentiment": "MIXED | NEGATIVE | NEUTRAL | POSITIVE", "sentimentScore": { "mixed": number, "negative": number, "neutral": number, "positive": number } } }

Die Felder innerhalb der Struktur lauten wie folgt:

  • Absicht — Eine Struktur, die Informationen über die Absicht enthält. Einzelheiten Absicht zur Struktur finden Sie unter.

  • NLUConfidence — Ein Wert, der angibt, wie sicher Amazon Lex V2 ist, dass die Absicht mit der Absicht des Benutzers übereinstimmt.

  • sentimentResponse — Eine Analyse der Stimmung in der Antwort, die die folgenden Felder enthält:

    • Stimmung — Gibt an, ob die Stimmung der Äußerung,, oder ist. POSITIVE NEGATIVE NEUTRAL MIXED

    • SentimentScore — Eine Struktur, die jedes Gefühl einer Zahl zuordnet, die angibt, wie sicher Amazon Lex V2 ist, dass die Äußerung dieses Gefühl vermittelt.

  • InterpretationSource — Gibt an, ob ein Slot von Amazon Lex oder Amazon Bedrock aufgelöst wird.

Wenn die Lambda-Funktion das dialogAction von sessionState auf setztDelegate, wird dieses Feld angezeigt und zeigt den Vorschlag von Amazon Lex V2 für den nächsten Schritt in der Konversation. Andernfalls hängt der nächste Status von den Einstellungen ab, die Sie in der Antwort Ihrer Lambda-Funktion zurückgeben. Diese Struktur ist nur vorhanden, wenn die beiden folgenden Aussagen zutreffen:

  1. Der invocationSource Wert ist DialogCodeHook

  2. Der vorhergesagte type von dialogAction istElicitSlot.

Sie können diese Informationen verwenden, um sie runtimeHints an der richtigen Stelle in der Konversation hinzuzufügen. Verbesserte Erkennung von Slot-Werten mit Runtime-HinweisenWeitere Informationen finden Sie unter. proposedNextStateist eine Struktur, die die folgenden Felder enthält:

Die Struktur von proposedNextState ist wie folgt:

"proposedNextState": { "dialogAction": { "slotToElicit": string, "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot" }, "intent": { // see Absicht for details about the structure }, "prompt": { "attempt": string } }
  • DialogAction — Enthält Informationen zum nächsten Schritt, den Amazon Lex V2 vorschlägt. Die Felder in der Struktur lauten wie folgt:

    • slotToElicit— Der Slot, der als nächstes ausgewählt werden soll, wie von Amazon Lex V2 vorgeschlagen. Dieses Feld wird nur angezeigt, wenn dies der Fall isttype. ElicitSlot

    • type — Der nächste Schritt in der Konversation, wie von Amazon Lex V2 vorgeschlagen. Die folgenden Werte sind möglich:

      Delegate— Amazon Lex V2 bestimmt die nächste Aktion.

      ElicitIntent— Die nächste Aktion besteht darin, beim Benutzer eine Absicht auszulösen.

      ElicitSlot— Die nächste Aktion besteht darin, dem Benutzer einen Slot-Wert zu entlocken.

      Close— Beendet den Prozess zur Erfüllung der Absicht und gibt an, dass der Benutzer nicht antworten wird.

      ConfirmIntent— Die nächste Aktion besteht darin, den Benutzer zu fragen, ob die Slots korrekt sind und ob die Absicht zur Erfüllung bereit ist.

  • Absicht — Die Absicht, die der Bot festgestellt hat und die der Benutzer zu erfüllen versucht. Einzelheiten Absicht zur Struktur finden Sie unter.

  • prompt — Eine Struktur, die das Feld enthältattempt, das einem Wert zugeordnet ist, der angibt, wie oft Amazon Lex V2 den Benutzer zur Eingabe des nächsten Slots aufgefordert hat. Die möglichen Werte gelten Initial für den ersten Versuch und Retry1Retry2,Retry3,Retry4, und Retry5 für nachfolgende Versuche.

Eine Struktur, die anforderungsspezifische Attribute enthält, die der Client in der Anfrage sendet. Verwenden Sie Anforderungsattribute zur Weitergabe von Informationen, die nicht während der ganzen Sitzung erhalten bleiben müssen. Wenn keine Anforderungsattribute vorhanden sind, ist der Wert Null. Weitere Informationen finden Sie unter Anforderungsattribute einrichten.

Der aktuelle Status der Konversation zwischen dem Benutzer und Ihrem Amazon Lex V2-Bot. Einzelheiten Status der Sitzung zur Struktur finden Sie unter.

Eine Liste von Transkriptionen, die Amazon Lex V2 für mögliche Übereinstimmungen mit der Äußerung des Benutzers hält. Weitere Informationen finden Sie unter Verwendung von Konfidenzwerten für die Sprachtranskription. Jedes Element ist ein Objekt mit dem folgenden Format, das Informationen über eine mögliche Transkription enthält:

{ "transcription": string, "transcriptionConfidence": number, "resolvedContext": { "intent": string }, "resolvedSlots": { slot name: { // see Slots for details about the structure }, ... } }

Die Felder werden im Folgenden beschrieben:

  • Transkription — Eine Transkription, die Amazon Lex V2 als mögliche Übereinstimmung mit der Audioäußerung des Benutzers betrachtet.

  • TranscriptionConfidence — Ein Wert, der angibt, wie sicher Amazon Lex V2 ist, dass die Absicht mit der Absicht des Benutzers übereinstimmt.

  • ResolvedContext — Eine Struktur, die das Feld enthält, das der Absicht zugeordnet istintent, auf die sich die Äußerung bezieht.

  • ResolvedSlots — Eine Struktur, deren Schlüssel die Namen der einzelnen Slots sind, die durch die Äußerung aufgelöst werden. Jeder Slot-Name ist einer Struktur zugeordnet, die Informationen über diesen Slot enthält. Einzelheiten Slots zur Struktur finden Sie unter.