Si vous utilisez Amazon Lex V2, consultez plutôt le guide Amazon Lex V2.
Si vous utilisez Amazon Lex V1, nous vous recommandons de mettre à niveau vos robots vers Amazon Lex V2. Nous n'ajoutons plus de nouvelles fonctionnalités à la V1 et recommandons vivement d'utiliser la V2 pour tous les nouveaux robots.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Migration d'une fonction Lambda d'Amazon Lex V1 vers Amazon Lex V2
Amazon Lex V2 n'autorise qu'une seule fonction Lambda pour chaque langue dans un bot. La fonction Lambda et ses paramètres sont configurés pour l'alias de bot que vous utilisez lors de l'exécution.
La fonction Lambda est invoquée à toutes fins utiles dans cette langue si les hooks de dialogue et de code d'exécution sont activés à cette fin.
Les fonctions Lambda d'Amazon Lex V2 ont un format de message d'entrée et de sortie différent de celui d'Amazon Lex V1. Voici les différences entre le format d'entrée de la fonction Lambda.
-
Amazon Lex V2 remplace les
alternativeIntents
structurescurrentIntent
et par lainterpretations
structure. Chaque interprétation contient une intention, le score de confiance NLU pour l'intention et une analyse des sentiments facultative. -
Amazon Lex V2 déplace le
activeContexts
,sessionAttributes
dans Amazon Lex V1, vers lasessionState
structure unifiée. Cette structure fournit des informations sur l'état actuel de la conversation, y compris l'identifiant de la demande d'origine. -
Amazon Lex V2 ne renvoie pas le
recentIntentSummaryView
. Utilisez plutôt les informations de lasessionState
structure. -
L'entrée Amazon Lex V2 fournit l'attribut
botId
andlocaleId
dans l'bot
attribut. -
La structure d'entrée contient un
inputMode
attribut qui fournit des informations sur le type d'entrée : texte, voix ou DTMF.
Voici les différences entre le format de sortie de la fonction Lambda :
-
Les
sessionAttributes
structuresactiveContexts
et d'Amazon Lex V1 sont remplacées par cellessessionState
d'Amazon Lex V2. -
Le
recentIntentSummaryView
n'est pas inclus dans la sortie. -
La
dialogAction
structure Amazon Lex V1 est divisée en deux structures,dialogAction
qui font partie de lasessionState
structure etmessages
qui sont requises lorsque c'dialogAction.type
est le casElicitIntent
. Amazon Lex choisit les messages de cette structure à afficher à l'utilisateur.
Lorsque vous créez un bot avec les API Amazon Lex V2, il n'existe qu'une seule fonction Lambda par alias de bot par langue au lieu d'une fonction Lambda pour chaque intention. Si vous souhaitez continuer à utiliser des fonctions distinctes, vous pouvez créer une fonction de routeur qui active une fonction distincte pour chaque intention. Voici une fonction du routeur que vous pouvez utiliser ou modifier pour votre application.
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 des champs mis à jour
Les tableaux suivants fournissent des informations détaillées sur les champs mis à jour dans la demande et la réponse Lambda Amazon Lex V2. Vous pouvez utiliser ces tables pour mapper les champs entre les versions.
Demande
Les champs suivants ont été mis à jour dans le format de demande de fonction Lambda.
Contextes actifs
La activeContexts
structure fait désormais partie de la sessionState
structure.
Structure V1 | Structure V2 |
---|---|
Contextes actifs |
État de la session. ActiveContexts |
Contextes actifs [*]. timeToLive |
SessionState.ActiveContexts [*]. timeToLive |
Contextes actifs [*]. timeToLive. timeToLiveInSeconds |
SessionState.ActiveContexts [*]. timeToLive. timeToLiveInSeconds |
Contextes actifs [*]. timeToLive. turnsToLive |
SessionState.ActiveContexts [*]. timeToLive. turnsToLive |
ActiveContexts [*] .nom |
SessionState.ActiveContexts [*] .nom |
ActiveContexts [*] .paramètres |
SessionState.ActiveContexts [*] .ContextAttributs |
Intentions alternatives
La liste des interprétations de l'indice 1 à N contient la liste des intentions alternatives prédites par Amazon Lex V2, ainsi que leurs scores de confiance. Le recentIntentSummaryView
est supprimé de la structure de demande dans Amazon Lex V2. Pour voir les détails durecentIntentSummaryView
, utilisez l'GetSessionopération.
Structure V1 | Structure V2 |
---|---|
Tentes alternatives |
interprétations [1 : *] |
recentIntentSummaryAfficher |
N/A |
Robot
Dans Amazon Lex V2, les robots et les alias possèdent des identifiants. L'ID du bot fait partie de l'entrée du codehook. L'ID d'alias est inclus, mais pas le nom de l'alias. Amazon Lex V2 prend en charge plusieurs paramètres régionaux pour le même bot. L'identifiant local est donc inclus.
Structure V1 | Structure V2 |
---|---|
bot |
bot |
bot.name |
bot.name |
N/A |
bot.id |
bot.alias |
N/A |
N/A |
ID d'alias du robot |
bot.version |
bot.version |
N/A |
ID local du robot |
Intention actuelle
La sessionState.intent
structure contient les détails de l'intention active. Amazon Lex V2 renvoie également une liste de toutes les intentions, y compris les intentions alternatives, de la interpretations
structure. Le premier élément de la liste d'interprétations est toujours le même quesessionState.intent
.
Structure V1 | Structure V2 |
---|---|
currentIntent |
SessionState.intent OU interprétations [0] .intent |
Nom de l'intention actuelle |
SessionState.intent.name OU interprétations [0] .intent.name |
CurrentIntent. nluConfidenceScore |
interprétations [0] .nluConfidence.score |
Action de dialogue
Le confirmationStatus
champ fait désormais partie de la sessionState
structure.
Structure V1 | Structure V2 |
---|---|
Intention actuelle. État de confirmation |
SessionState.Intent.ConfirmationState OU interprétations [0] .intent.confirmationState |
N/A |
SessionState.intent.STATE OU interprétations [*] .intent.state |
Amazon Kendra
Le kendraResponse
champ fait désormais partie des interpretations
structures sessionState
et.
Structure V1 | Structure V2 |
---|---|
kendraResponse |
SessionState.Intent.KendraResponse OU interprétations [0] .intent.KendraResponse |
Sentiment
La sentimentResponse
structure est déplacée vers la nouvelle interpretations
structure.
Structure V1 | Structure V2 |
---|---|
sentimentResponse |
interprétations [0] .SentimentResponse |
Réponse sentimentale. Étiquette sentimentale |
interprétations [0] .sentimentResponse.Sentiment |
Réponse sentimentale. Score de sentiment |
interprétations [0] .sentimentResponse.SentimentScore |
Emplacements
Amazon Lex V2 fournit un slots
objet unique à l'intérieur de la sessionState.intent
structure qui contient les valeurs résolues, les valeurs interprétées et la valeur d'origine de ce que l'utilisateur a dit. Amazon Lex V2 prend également en charge les emplacements à valeurs multiples en définissant le slotShape
as List
et en définissant la values
liste. Les emplacements à valeur unique sont pris en charge par le value
champ, leur forme est supposée l'êtreScalar
.
Structure V1 | Structure V2 |
---|---|
Current Intent. Slots |
SessionState.Intent.Slots OU interprétations [0] .intent.slots |
CurrentIntent.slots [*] .valeur |
SessionState.Intent.Slots [*] .value.InterpretedValue OU interprétations [0] .intent.slots [*] .value.InterpretedValue |
N/A |
SessionState.Intent.Slots [*] .value.shape OU interprétations [0] .intent.slots [*] .shape |
N/A |
SessionState.Intent.Slots [*] .values OU interprétations [0] .intent.slots [*] .values |
Détails de la machine à sous Current Intent. |
SessionState.Intent.Slots OU interprétations [0] .intent.slots |
CurrentIntent.SlotDetails [*] .résolutions |
SessionState.Intent.Slots [*] .ResolvedValues OU interprétations [0] .intent.slots [*] .ResolvedValues |
CurrentIntent.SlotDetails [*] .Valeur originale |
SessionState.Intent.Slots [*] .OriginalValue OU interprétations [0] .intent.slots [*] .OriginalValue |
Autres
Le sessionId
champ Amazon Lex V2 est identique à celui userId
d'Amazon Lex V1. Amazon Lex V2 envoie également le message inputMode
de l'appelant : texte, DTMF ou discours.
Structure V1 | Structure V2 |
---|---|
userId |
sessionId |
inputTranscript |
inputTranscript |
invocationSource |
invocationSource |
outputDialogMode |
responseContentType |
messageVersion |
messageVersion |
sessionAttributes |
État de la session. Attributs de session |
requestAttributes |
requestAttributes |
N/A |
Mode d'entrée |
N/A |
originatingRequestId |
Réponse
Les champs suivants ont été modifiés dans le format du message de réponse de la fonction Lambda.
Contextes actifs
La activeContexts
structure a été déplacée vers la sessionState
structure.
Structure V1 | Structure V2 |
---|---|
Contextes actifs |
État de la session. ActiveContexts |
Contextes actifs [*]. timeToLive |
SessionState.ActiveContexts [*]. timeToLive |
Contextes actifs [*]. timeToLive. timeToLiveInSeconds |
SessionState.ActiveContexts [*]. timeToLive. timeToLiveInSeconds |
Contextes actifs [*]. timeToLive. turnsToLive |
SessionState.ActiveContexts [*]. timeToLive. turnsToLive |
ActiveContexts [*] .nom |
SessionState.ActiveContexts [*] .nom |
ActiveContexts [*] .paramètres |
SessionState.ActiveContexts [*] .ContextAttributs |
Action de dialogue
La dialogAction
structure a été déplacée vers la sessionState
structure. Vous pouvez désormais spécifier plusieurs messages dans une action de dialogue, et la genericAttachments
structure est désormais la imageResponseCard
structure.
Structure V1 | Structure V2 |
---|---|
dialogAction |
État de la session. DialogAction |
Type d'action de dialogue |
État de la session. DialogAction.Type |
DialogAction. slotToElicit |
SessionState.Intent.DialogAction. slotToElicit |
DialogAction.Type.FulfillmentState |
SessionState.Intent.State |
DialogAction.Message |
messages |
DialogAction.Message.ContentType |
messages [*] .ContentType |
DialogAction.Message.Content |
messages [*] .contenu |
Carte DialogAction.ResponseCard |
messages [*]. imageResponseCard |
DialogAction.ResponseCard.Version |
N/A |
DialogAction.ResponseCard.ContentType |
messages [*] .ContentType |
DialogAction.Responsecard.GenericAttachments |
N/A |
DialogAction.Responsecard.GenericAttachments [*] .title |
messages [*]. imageResponseCard.titre |
DialogAction.Responsecard.GenericAttachments [*] .sous-titre |
messages [*]. imageResponseCard.sous-titre |
DialogAction.Responsecard.GenericAttachments [*] .imageURL |
messages [*]. imageResponseCard.URL de l'image |
DialogAction.Responsecard.GenericAttachments [*] .buttons |
messages [*]. imageResponseCard.boutons |
DialogAction.Responsecard.GenericAttachments [*] .buttons [*] .valeur |
messages [*]. imageResponseCard.buttons [*] .valeur |
DialogAction.Responsecard.GenericAttachments [*] .buttons [*] .text |
messages [*]. imageResponseCard.boutons [*] .texte |
DialogAction. kendraQueryRequestCharge utile |
DialogAction. kendraQueryRequestCharge utile |
DialogAction. kendraQueryFilterCorde |
DialogAction. kendraQueryFilterCorde |
Intentions et créneaux
Les champs Intent et slot qui faisaient partie de la dialogAction
structure font désormais partie de la sessionState
structure.
Structure V1 | Structure V2 |
---|---|
DialogAction.IntentName |
SessionState.Intent.Name |
DialogAction.slots |
SessionState.Intent.Slots |
DialogAction.slots [*] .key |
SessionState.Intent.Slots [*] .clé |
DialogAction.slots [*] .valeur |
SessionState.Intent.Slots [*] .value.InterpretedValue |
N/A |
SessionState.Intent.Slots [*] .value.shape |
N/A |
SessionState.Intent.Slots [*] .valeurs |
Autres
La sessionAttributes
structure fait désormais partie de la sessionState
structure. La recentIntentSummaryReview
structure a été supprimée.
Structure V1 | Structure V2 |
---|---|
sessionAttributes |
État de la session. Attributs de session |
recentIntentSummaryAfficher |
N/A |