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.
AWS Lambda format d'événement d'entrée pour Lex V2
La première étape de l'intégration d'une fonction Lambda dans votre bot Amazon Lex V2 consiste à comprendre les champs de l'événement Amazon Lex V2 et à déterminer les informations de ces champs que vous souhaitez utiliser lors de l'écriture de votre script. L'JSONobjet suivant montre le format général d'un événement Amazon Lex V2 transmis à une fonction Lambda :
Note
Le format d'entrée peut changer sans qu'une modification correspondante ne soit apportée aumessageVersion
. Votre code ne devrait pas générer d'erreur si de nouveaux champs sont présents.
{ "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 Intention 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 Intention for details about the structure }, "prompt": { "attempt":string
} }, "requestAttributes": {string
:string
, ... }, "sessionState": { // see État de la session for details about the structure }, "transcriptions": [ { "transcription":string
, "transcriptionConfidence":number
, "resolvedContext": { "intent":string
}, "resolvedSlots": {slot name
: { // see Emplacements for details about the structure }, ... } }, ... ] }
Chaque champ de l'événement d'entrée est décrit ci-dessous :
Version du message qui identifie le format des données d'événement entrées dans la fonction Lambda et le format attendu de la réponse d'une fonction Lambda.
Note
Vous configurez cette valeur lorsque vous définissez une intention. Dans l'implémentation actuelle, Amazon Lex V2 ne prend en charge que la version 1.0 des messages. Par conséquent, la console prend la valeur par défaut 1.0 et n'affiche pas la version de message.
Le crochet de code qui a appelé la fonction Lambda. Les valeurs suivantes sont possibles :
DialogCodeHook
— Amazon Lex V2 a appelé la fonction Lambda après une entrée de l'utilisateur.
FulfillmentCodeHook
— Amazon Lex V2 a appelé la fonction Lambda une fois que tous les emplacements requis ont été remplis et que l'intention est prête à être exécutée.
Mode d'énoncé de l'utilisateur. Les valeurs possibles sont les suivantes :
DTMF
— L'utilisateur saisit l'énoncé à l'aide d'un clavier tactile (double tonalité multifréquence).
Speech
— L'utilisateur a prononcé l'énoncé.
Text
— L'utilisateur a saisi l'énoncé.
Mode de réponse du bot à l'utilisateur. text/plain; charset=utf-8
indique que le dernier énoncé a été écrit, tandis qu'une valeur commençant par audio
indique que le dernier énoncé a été prononcé.
Identifiant de session alphanumérique utilisé pour la conversation.
Une transcription de l'entrée de l'utilisateur.
-
Pour la saisie de texte, il s'agit du texte saisi par l'utilisateur. Pour la DTMF saisie, il s'agit de la clé saisie par l'utilisateur.
-
Pour la saisie vocale, il s'agit du texte en lequel Amazon Lex V2 convertit l'énoncé de l'utilisateur afin d'invoquer une intention ou de remplir un espace.
Valeur qui indique la réponse qui a appelé la fonction Lambda. Vous pouvez définir des étiquettes d'appel pour la réponse initiale, les créneaux et la réponse de confirmation.
Informations sur le bot qui a traité la demande, comprenant les champs suivants :
-
id — L'identifiant attribué au bot lorsque vous l'avez créé. Vous pouvez voir l'ID du bot dans la console Amazon Lex V2 sur la page des paramètres du bot.
-
name — Le nom que vous avez donné au bot lorsque vous l'avez créé.
-
localeId— L'identifiant de la localisation que vous avez utilisée pour votre bot. Pour obtenir la liste des paramètres régionaux, voirLangues et paramètres régionaux pris en charge par Amazon Lex V2.
-
version — Version du bot qui a traité la demande.
-
aliasId— L'identifiant attribué à l'alias du bot lorsque vous l'avez créé. Vous pouvez voir l'ID d'alias du bot dans la console Amazon Lex V2 sur la page Alias. Si vous ne voyez pas l'identifiant d'alias dans la liste, cliquez sur l'icône en forme de roue dentée en haut à droite et activez l'identifiant d'alias.
-
aliasName— Le nom que vous avez attribué à l'alias du bot.
Une liste d'informations sur les intentions qu'Amazon Lex V2 considère comme possibles correspond à l'énoncé de l'utilisateur. Chaque élément est une structure qui fournit des informations sur la correspondance de l'énoncé avec une intention, au format suivant :
{ "intent": { // see Intention 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
} } }
Les champs de la structure sont les suivants :
-
intention — Structure contenant des informations sur l'intention. Voir Intention pour plus de détails sur la structure.
-
nluConfidence— Un score qui indique dans quelle mesure Amazon Lex V2 est certain que l'intention correspond à celle de l'utilisateur.
-
sentimentResponse— Une analyse du sentiment de la réponse, contenant les champs suivants :
-
sentiment — Indique si le sentiment de l'énoncé est
POSITIVE
,NEGATIVE
NEUTRAL
, ou.MIXED
-
sentimentScore— Une structure associant chaque sentiment à un chiffre indiquant dans quelle mesure Amazon Lex V2 est sûr que l'énoncé exprime ce sentiment.
-
-
interpretationSource— Indique si un créneau est résolu par Amazon Lex ou Amazon Bedrock.
Si la fonction Lambda définit le dialogAction
sessionState
àDelegate
, ce champ apparaît et indique la proposition d'Amazon Lex V2 pour l'étape suivante de la conversation. Sinon, l'état suivant dépend des paramètres que vous renvoyez dans la réponse de votre fonction Lambda. Cette structure n'est présente que si les deux affirmations suivantes sont vraies :
-
La
invocationSource
valeur estDialogCodeHook
-
La prédiction
type
dedialogAction
estElicitSlot
.
Vous pouvez utiliser ces informations pour les ajouter runtimeHints
au bon moment de la conversation. Voir Amélioration de la reconnaissance des valeurs des créneaux grâce à des indications d'exécution lors de la conversation pour plus d'informations. proposedNextState
est une structure contenant les champs suivants :
La structure de proposedNextState
est la suivante :
"proposedNextState": { "dialogAction": { "slotToElicit":
string
, "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot" }, "intent": { // see Intention for details about the structure }, "prompt": { "attempt":string
} }
-
dialogAction— Contient des informations sur la prochaine étape proposée par Amazon Lex V2. Les champs de la structure sont les suivants :
-
slotToElicit— L'emplacement à sélectionner ensuite, tel que proposé par Amazon Lex V2. Ce champ n'apparaît que si
type
c'est le casElicitSlot
. -
type — L'étape suivante de la conversation telle que proposée par Amazon Lex V2. Les valeurs suivantes sont possibles :
Delegate
— Amazon Lex V2 détermine l'action suivante.ElicitIntent
— L'action suivante consiste à obtenir une intention de la part de l'utilisateur.ElicitSlot
— L'action suivante consiste à obtenir une valeur d'emplacement auprès de l'utilisateur.Close
— Met fin au processus de réalisation des intentions et indique qu'il n'y aura pas de réponse de la part de l'utilisateur.ConfirmIntent
— L'action suivante consiste à demander à l'utilisateur si les créneaux sont corrects et si l'intention est prête à être remplie.
-
-
intention — L'intention que le bot a déterminée et que l'utilisateur essaie de réaliser. Voir Intention pour plus de détails sur la structure.
-
prompt — Structure contenant le champ
attempt
, qui correspond à une valeur indiquant le nombre de fois où Amazon Lex V2 a demandé à l'utilisateur de choisir l'emplacement suivant. Les valeurs possibles concernentInitial
la première tentativeRetry1
,,Retry2
,Retry3
Retry4
, etRetry5
les tentatives suivantes.
Structure contenant les attributs spécifiques à la demande que le client envoie dans la demande. Utilisez les attributs de demande pour transmettre des informations qui n'ont pas besoin de persister pendant la totalité de la session. S'il n'y a pas d'attributs de demandes, cette valeur est null. Pour de plus amples informations, veuillez consulter Configuration des attributs de demande pour votre bot Lex V2.
État actuel de la conversation entre l'utilisateur et votre bot Amazon Lex V2. Voir État de la session pour plus de détails sur la structure.
Une liste de transcriptions considérées comme possibles par Amazon Lex V2 correspond à l'énoncé de l'utilisateur. Pour de plus amples informations, veuillez consulter Utiliser les scores de fiabilité de la transcription vocale pour améliorer les conversations avec votre robot Lex V2. Chaque élément est un objet au format suivant, contenant des informations sur une transcription possible :
{ "transcription":
string
, "transcriptionConfidence":number
, "resolvedContext": { "intent":string
}, "resolvedSlots": {slot name
: { // see Emplacements for details about the structure }, ... } }
Les champs sont décrits ci-dessous :
-
transcription : transcription considérée par Amazon Lex V2 comme pouvant correspondre à l'énoncé audio de l'utilisateur.
-
transcriptionConfidence— Un score qui indique dans quelle mesure Amazon Lex V2 est certain que l'intention correspond à celle de l'utilisateur.
-
resolvedContext— Une structure contenant le champ
intent
, qui correspond à l'intention à laquelle se rapporte l'énoncé. -
resolvedSlots— Une structure dont les clés sont les noms de chaque emplacement résolu par l'énoncé. Le nom de chaque emplacement correspond à une structure contenant des informations sur cet emplacement. Voir Emplacements pour plus de détails sur la structure.