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 die
currentIntent
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 das
activeContexts
,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ück
recentIntentSummaryView
. Verwenden Sie stattdessen die Informationen in dersessionState
Struktur. -
Die Amazon Lex V2-Eingabe stellt das
botId
undlocaleId
imbot
Attribut bereit. -
Die Eingabestruktur enthält ein
inputMode
Attribut, das Informationen über die Art der Eingabe bereitstellt: Text, Sprache oder DTMF.
Dies sind die Unterschiede im Ausgabeformat der Lambda-Funktion:
-
Die
activeContexts
undsessionAttributes
-Strukturen in Amazon Lex V1 werden durch diesessionState
Struktur in Amazon Lex V2 ersetzt. -
Das
recentIntentSummaryView
ist nicht in der Ausgabe enthalten. -
Die Amazon Lex
dialogAction
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 |
– |