Migration einer Lambda-Funktion von Amazon Lex V1 auf Amazon Lex V2 - 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.

Migration einer Lambda-Funktion von Amazon Lex V1 auf Amazon Lex V2

Amazon Lex V2 erlaubt nur eine Lambda-Funktion für jede Sprache in einem Bot. Die Lambda-Funktion und ihre Einstellungen sind für den Bot-Alias konfiguriert, den Sie zur Laufzeit verwenden.

Die Lambda-Funktion wird in dieser Sprache in jeder Hinsicht aufgerufen, wenn Dialog- und Fulfillment-Code-Hooks für die Absicht aktiviert sind.

Amazon Lex V2 Lambda-Funktionen haben ein anderes Eingabe- und Ausgabe-Nachrichtenformat als Amazon Lex V1. Dies sind die Unterschiede im Eingabeformat der Lambda-Funktion.

  • Amazon Lex V2 ersetzt diecurrentIntent undalternativeIntents -Strukturen durch dieinterpretations Struktur. Jede Interpretation enthält eine Absicht, den NLU-Konfidenzwert für die Absicht und eine optionale Stimmungsanalyse.

  • Amazon Lex V2 verschiebt dasactiveContexts,sessionAttributes in Amazon Lex V1 auf die einheitlichesessionState Struktur. Diese Struktur bietet Informationen zum aktuellen Status der Konversation, einschließlich der ursprünglichen Ereignismeldungen.

  • Amazon Lex V2 gibt das nicht zurückrecentIntentSummaryView. Verwenden Sie stattdessen die Informationen in dersessionState Struktur.

  • Die Amazon Lex V2-Eingabe stellt dasbotId undlocaleId imbot Attribut bereit.

  • Die Eingabestruktur enthält eininputMode Attribut, das Informationen über die Art der Eingabe bereitstellt: Text, Sprache oder DTMF.

Dies sind die Unterschiede im Ausgabeformat der Lambda-Funktion:

  • DieactiveContexts undsessionAttributes -Strukturen in Amazon Lex V1 werden durch diesessionState Struktur in Amazon Lex V2 ersetzt.

  • DasrecentIntentSummaryView ist nicht in der Ausgabe enthalten.

  • Die Amazon LexdialogAction V1-Struktur ist in zwei Strukturen aufgeteilt,dialogAction die Teil dersessionState Struktur sind undmessages diedialogAction.type erforderlichElicitIntent sind, wenn Amazon Lex wählt Nachrichten aus dieser Struktur aus, um sie dem Benutzer anzuzeigen.

Wenn Sie einen Bot mit den Amazon Lex V2-APIs erstellen, gibt es nur eine Lambda-Funktion pro Bot-Alias pro Sprache anstelle einer Lambda-Funktion für jede Absicht. Wenn Sie weiterhin separate Funktionen verwenden möchten, können Sie eine Routerfunktion erstellen, die für jede Absicht eine separate Funktion aktiviert. Im Folgenden finden Sie eine Routerfunktion, die Sie für Ihre Anwendung verwenden oder ändern können.

import os import json import boto3 # reuse client connection as global client = boto3.client('lambda') def router(event): intent_name = event['sessionState']['intent']['name'] fn_name = os.environ.get(intent_name) print(f"Intent: {intent_name} -> Lambda: {fn_name}") if (fn_name): # invoke lambda and return result invoke_response = client.invoke(FunctionName=fn_name, Payload = json.dumps(event)) print(invoke_response) payload = json.load(invoke_response['Payload']) return payload raise Exception('No environment variable for intent: ' + intent_name) def lambda_handler(event, context): print(event) response = router(event) return response

Liste der aktualisierten Felder

Die folgenden Tabellen enthalten detaillierte Informationen zu den aktualisierten Feldern in der Amazon Lex V2 Lambda-Anfrage und -Antwort. Sie können diese Tabellen verwenden, um Felder zwischen den Versionen zuzuordnen.

Anfrage

Die folgenden Felder wurden im Format der Lambda-Funktionsanforderung aktualisiert.

Aktive Kontexte

DieactiveContexts Struktur ist jetzt Teil dersessionState Struktur.

V1struktur Struktur von V2

Aktive Kontexte

SessionState.ActiveContexts

Aktive Kontexte [*]. timeToLive

sessionState.activeContexts [*]. timeToLive

Aktive Kontexte [*]. timeToLive. timeToLiveInSeconds

sessionState.activeContexts [*]. timeToLive. timeToLiveInSeconds

Aktive Kontexte [*]. timeToLive. turnsToLive

sessionState.activeContexts [*]. timeToLive. turnsToLive

ActiveContexts [*] .name

sessionState.activeContexts [*] .name

activeContexts [*] .parameter

sessionState.activeContexts [*] .context-Attribute

Alternative Absichten

Die Interpretationsliste von Index 1 bis N enthält die Liste der von Amazon Lex V2 vorhergesagten alternativen Absichten sowie deren Konfidenzwerte. DasrecentIntentSummaryView wird aus der Anforderungsstruktur in Amazon Lex V2 entfernt. Um die Details von zu sehenrecentIntentSummaryView, verwenden Sie dieGetSession Operation.

V1struktur Struktur von V2

Alternative Inhalte

Interpretationen [1: *]

recentIntentSummaryAnsicht

Bot

In Amazon Lex V2 haben Bots und Aliase Identifikatoren. Die Bot-ID ist Teil der Codehook-Eingabe. Die Alias-ID ist enthalten, aber nicht der Aliasname. Amazon Lex V2 unterstützt mehrere Gebietsschemas für denselben Bot, sodass die Gebietsschema-ID enthalten ist.

V1struktur Struktur von V2

Bot

Bot

Bot.name

Bot.name

bot.id

bot.alias

Bot.AliasID

Bot-Version

Bot-Version

Bot.LocaleID

Aktuelle Absicht

DiesessionState.intent Struktur enthält die Details der aktiven Absicht. Amazon Lex V2 gibt außerdem eine Liste aller Intents, einschließlich alternativer Intents, in derinterpretations Struktur zurück. Das erste Element in der Interpretationsliste ist immer dasselbe wiesessionState.intent.

V1struktur Struktur von V2

currentIntent

sessionState.intention ODER Interpretationen [0] .intent

Aktueller Intent.Name

sessionState.Intent.Name ODER Interpretationen [0] .intent.name

currentIntent. nluConfidenceScore

Interpretationen [0] .nluConfidence.Score

Aktion „Dialog“

DasconfirmationStatus Feld ist jetzt Teil dersessionState Struktur.

V1struktur Struktur von V2

Aktueller Intent.Bestätigungsstatus

sessionState.Intent.ConfirmationState ODER Interpretationen [0] .intent.ConfirmationState

sessionState.Intent.State ODER Interpretationen [*] .intent.state

Amazon Kendra

DaskendraResponse Feld ist jetzt Teil dersessionState undinterpretations -Strukturen.

V1struktur Struktur von V2

kendraResponse

sessionState.Intent.kendraResponse ODER Interpretationen [0] .intent.kendraResponse

Stimmung

DiesentimentResponse Struktur wird in die neueinterpretations Struktur verschoben.

V1struktur Struktur von V2

sentimentResponse

Interpretationen [0] .sentimentResponse

Stimmungsantwort.SentimentLabel

Interpretationen [0] .sentimentResponse.Sentiment

Stimmungsantwort. Stimmungswert

Interpretationen [0] .sentimentResponse.sentimentScore

Slots

Amazon Lex V2 stellt ein einzelnesslots Objekt innerhalb dersessionState.intent Struktur bereit, das die aufgelösten Werte, den interpretierten Wert und den ursprünglichen Wert dessen, was der Benutzer gesagt hat, enthält. Amazon Lex V2 unterstützt auch Steckplätze mit mehreren Werten, indemslotShape es die alsList und dievalues Liste festlegt. Steckplätze mit einem Wert werden vomvalue Feld unterstützt, ihre Form wird angenommenScalar.

V1struktur Struktur von V2

Aktuell in TENT.SLOTS

sessionState.Intent.slots ODER Interpretationen [0] .intent.slots

CurrentIntent.slots [*] .value

sessionState.Intent.slots [*] .value.interpretedValue ODER Interpretationen [0] .intent.slots [*] .value.interpretedValue

sessionState.Intent.slots [*] .value.shape ODER Interpretationen [0] .intent.slots [*] .shape

sessionState.Intent.slots [*] .values ODER Interpretationen [0] .intent.slots [*] .values

Aktuelle Intent.Slotdetails

sessionState.Intent.slots ODER Interpretationen [0] .intent.slots

Aktuelle Intent.SlotDetails [*]. Auflösungen

sessionState.Intent.slots [*] .resolvedValues ODER Interpretationen [0] .intent.slots [*] .resolvedValues

Aktuelle Intent.SlotDetails [*]. Originalwert

sessionState.Intent.slots [*] .OriginalValue ODER Interpretationen [0] .intent.slots [*] .originalValue

Weitere

Das Amazon LexsessionId V2-Feld ist dasselbe wie dasuserId Feld in Amazon Lex V1. Amazon Lex V2 sendet auch dieinputMode des Anrufers: Text, DTMF oder Sprache.

V1struktur Struktur von V2

userId

sessionId

inputTranscript

inputTranscript

invocationSource

invocationSource

outputDialogMode

responseContentType

messageVersion

messageVersion

sessionAttributes

SessionState.Session-Attribute

requestAttributes

requestAttributes

Eingabemodus

originatingRequestId

Antwort

Die folgenden Felder wurden im Antwortnachrichtenformat der Lambda-Funktion geändert.

Aktive Kontexte

DieactiveContexts Struktur wurde in diesessionState Struktur verschoben.

V1struktur Struktur von V2

Aktive Kontexte

SessionState.ActiveContexts

Aktive Kontexte [*]. timeToLive

sessionState.activeContexts [*]. timeToLive

Aktive Kontexte [*]. timeToLive. timeToLiveInSeconds

sessionState.activeContexts [*]. timeToLive. timeToLiveInSeconds

Aktive Kontexte [*]. timeToLive. turnsToLive

sessionState.activeContexts [*]. timeToLive. turnsToLive

ActiveContexts [*] .name

sessionState.activeContexts [*] .name

activeContexts [*] .parameter

sessionState.activeContexts [*] .context-Attribute

Aktion „Dialog“

DiedialogAction Struktur wurde in diesessionState Struktur verschoben. Sie können jetzt mehrere Nachrichten in einer Dialogaktion angeben, und diegenericAttachments Struktur ist jetzt dieimageResponseCard Struktur.

V1struktur Struktur von V2

dialogAction

sessionState.DialogAction

DialogAction.Type

SessionState.DialogAction.Type

dialogAction. slotToElicit

SessionState.Intent.DialogAction. slotToElicit

DialogAction.Type.FulfillmentState

SessionState.Intent.State

DialogAction.Nachricht

messages

DialogAction.Message.ContentType

Nachrichten [*] .ContentType

DialogAction.Message.Inhalt

Nachrichten [*] .content

DialogAction.Antwortkarte

Nachrichten [*]. imageResponseCard

DialogAction.Antwortkarte.Version

DialogAction.ResponseCard.ContentType

Nachrichten [*] .ContentType

DialogAction.ResponseCard.Generische Anhänge

DialogAction.ResponseCard.GenericAttachments [*] .title

Nachrichten [*]. imageResponseCard.title

DialogAction.ResponseCard.GenericAttachments [*] .subtitle

Nachrichten [*]. imageResponseCard.untertitel

DialogAction.ResponseCard.GenericAttachments [*] .imageURL

Nachrichten [*]. imageResponseCard. imageUrl

DialogAction.ResponseCard.GenericAttachments [*] .buttons

Nachrichten [*]. imageResponseCard.tasten

DialogAction.ResponseCard.GenericAttachments [*] .buttons [*] .value

Nachrichten [*]. imageResponseCard.buttons [*] .value

DialogAction.ResponseCard.GenericAttachments [*] .buttons [*] .text

Nachrichten [*]. imageResponseCard.buttons [*] .text

dialogAction. kendraQueryRequestNutzlast

dialogAction. kendraQueryRequestNutzlast

dialogAction. kendraQueryFilterSchnur

dialogAction. kendraQueryFilterSchnur

Absichten und Slots

Absichts- und Slot-Felder, die Teil derdialogAction Struktur waren, sind jetzt Teil dersessionState Struktur.

V1struktur Struktur von V2

DialogAction.IntentName

SessionState.Intent.Name

DialogAction.Spielautomaten

SessionState.Intent.Slots

DialogAction.Slots [*] .key

sessionState.Intent.slots [*] .key

DialogAction.Slots [*] .value

sessionState.Intent.Slots [*] .value.interpretedValue

sessionState.Intent.Slots [*] .value.shape

sessionState.Intent.slots [*] .values

Weitere

DiesessionAttributes Struktur ist jetzt Teil dersessionState Struktur. DierecentIntentSummaryReview Struktur wurde entfernt.

V1struktur Struktur von V2

sessionAttributes

SessionState.Session-Attribute

recentIntentSummaryAnsicht