Interprétation du format d'événement d'entrée - Amazon Lex

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.

Interprétation du format d'événement d'entrée

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'objet JSON 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-8indique 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 l'entrée DTMF, 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.

Une 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 — 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 donné à 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 : score qui indique dans quelle mesure Amazon Lex V2 est certain que l'intention correspond à celle de l'utilisateur.

  • SentimentResponse — Analyse du sentiment de la réponse, contenant les champs suivants :

    • sentiment — Indique si le sentiment de l'énoncé estPOSITIVE, NEGATIVENEUTRAL, ou. MIXED

    • SentimentScore : 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 emplacement 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. Dans le cas contraire, 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 :

  1. La invocationSource valeur est DialogCodeHook

  2. La prédiction type de dialogAction 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 indices d'exécution pour plus d'informations. proposedNextStateest 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 champattempt, 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 concernent Initial la première tentativeRetry1,,Retry2, Retry3Retry4, et Retry5 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 en savoir plus, consultez Définition des attributs de demande.

É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 en savoir plus, consultez Utilisation des scores de fiabilité de la transcription vocale. 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 : score qui indique dans quelle mesure Amazon Lex V2 est certain que l'intention correspond à celle de l'utilisateur.

  • ResolvedContext — Structure contenant le champintent, qui correspond à l'intention à laquelle se rapporte l'énoncé.

  • ResolvedSlots — 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.