Avis de fin de support : le 15 septembre 2025, le support pour Amazon Lex V1 AWS sera interrompu. Après le 15 septembre 2025, vous ne pourrez plus accéder à la console Amazon Lex V1 ni aux ressources Amazon Lex V1. Si vous utilisez Amazon Lex V2, consultez plutôt le guide Amazon Lex V2.
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
alternativeIntentsstructurescurrentIntentet par lainterpretationsstructure. 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,sessionAttributesdans Amazon Lex V1, vers lasessionStatestructure 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 lasessionStatestructure. -
L'entrée Amazon Lex V2 fournit l'attribut
botIdandlocaleIddans l'botattribut. -
La structure d'entrée contient un
inputModeattribut 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
sessionAttributesstructuresactiveContextset d'Amazon Lex V1 sont remplacées par cellessessionStated'Amazon Lex V2. -
Le
recentIntentSummaryViewn'est pas inclus dans la sortie. -
La
dialogActionstructure Amazon Lex V1 est divisée en deux structures,dialogActionqui font partie de lasessionStatestructure etmessagesqui sont requises lorsque c'dialogAction.typeest 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 |