Comment puis-je modifier le flux de mon bot Amazon Lex à l'aide d'une fonction AWS Lambda d'initialisation/validation ou de traitement ?

Date de la dernière mise à jour : 27/05/2022

Je souhaite modifier le flux de mon bot Amazon Lex à l'aide d'une fonction AWS Lambda d'initialisation/validation ou de traitement. Comment puis-je le faire à l'aide de la console Amazon Lex ?

Brève description

Vous pouvez utiliser des hooks de code AWS Lambda d'initialisation/validation ou de traitement pour apporter des modifications au flux de dialogue de votre bot Amazon Lex. La console Amazon Lex fournit le champ dialogAction, qui indique à Amazon Lex la prochaine action à entreprendre lors de ses interactions avec vos utilisateurs. Ce champ décrit à Amazon Lex ce à quoi s'attendre d'un utilisateur après qu'il a renvoyé une réponse au client.

Le champ type indique le plan d'action suivant pour le bot. Elle détermine également les autres champs que la fonction Lambda doit fournir dans le cadre de la valeur dialogAction. Elle comprend cinq types :

  1. ElicitIntent : informe Amazon Lex que l'utilisateur est censé répondre avec un énoncé qui inclut une intention.
  2. ElicitSlot : informe Amazon Lex que l'utilisateur est censé fournir une valeur d’emplacement dans la réponse.
  3. Fermer : indique à Amazon Lex de ne pas attendre de réponse de la part de l'utilisateur. Par exemple, « Votre commande de pizza a été passée » ne nécessite pas de réponse.
  4. ConfirmIntent : informe Amazon Lex que l'utilisateur est censé répondre par oui ou par non pour confirmer ou infirmer l'intention actuelle.
  5. Déléguer : demande à Amazon Lex de choisir le plan d'action suivant en fonction de la configuration du bot

Résolution

Remarque : les étapes décrites dans cet article utilisent la version 2 de la console Amazon Lex. Si vous utilisez actuellement la version 1, choisissez Passez à la nouvelle console Lex v2 dans le volet de navigation.

La syntaxe de réponse Lambda spécifie le format dans lequel Amazon Lex attend une réponse de votre fonction Lambda.

Consultez les informations suivantes concernant les champs de réponse :

  • sessionState — Ce champ est obligatoire. Il décrit l'état actuel de la conversation avec l'utilisateur. Le contenu réel de la structure dépend du type d'action de dialogue.
  • dialogAction — Ce champ détermine le type d'action qu'Amazon Lex doit entreprendre en réponse à la fonction Lambda. Le champ de type est toujours obligatoire. Le champ slotToElicit n'est requis que lorsque dialogAction.type vaut ElicitSlot.
  • intention — Nom de l'intention utilisée par Amazon Lex. Ce champ n'est pas obligatoire lorsque dialogAction.type est Déléguer ou ElicitIntent.
  • sétat – Ce champ est obligatoire. L'état ne peut être ReadyForFulfillment que si dialogAction.type est Délégué.
  • messages — Ce champ est obligatoire si dialogAction.type est ElicitIntent. Il décrit un ou plusieurs messages qu'Amazon Lex montre au client pour qu'il effectue la prochaine étape de la conversation. Si vous ne fournissez pas de messages, Amazon Lex utilise un message approprié que vous avez défini lors de la création du bot. Pour plus d'informations, consultez le type de données Message.
  • contentType : décrit le type de message à utiliser.
  • contenu — Si le type de message est PlainText, CustomPayload ou SSML, ce champ contient le message à envoyer à l'utilisateur.
  • imageResponseCard — Si le type de message est ImageResponseCard, ce champ contient la définition de la carte de réponse à montrer à l'utilisateur. Pour plus d'informations, consultez le type de données ImageResponseCard.

Modifier le flux de dialogue à l'aide du type ElicitSlot

Pour modifier le flux de dialogue à l'aide du type ElicitSlot, transmettez la réponse du hook de code Lambda au format suivant :

{
    "sessionState": {
        "dialogAction": {
            "slotToElicit": "<slot-name-to-elicit>",
            "type": "ElicitSlot"
        },
        "intent": {
            "name": "<intent-name-to-elicit>",
            "state": "<state>"
        }
    }
}

Après avoir renvoyé la réponse, Amazon Lex obtient un emplacement appelé « slot-name-to-elicit » appartenant à l'intention « intent-name-to-elicit ».

Modifier le flux de dialogue à l'aide du type ElicitIntent

Pour modifier le flux de dialogue à l'aide du type ElicitIntent, transmettez la réponse du hook de code Lambda au format suivant :

   {
     "sessionState": {
         "dialogAction": {
             "type": "ElicitIntent"
         }
     },
     "messages": [{
         "contentType": "<content-type>",
         "content": "<message>"
     }]
 }

Après avoir renvoyé cette réponse, le message spécifié dans l'espace réservé au message est affiché à l'intention de l'utilisateur. La saisie utilisateur suivante est considérée comme un énoncé d'intention, qui invoque l'intention ayant le score nluConfidence le plus élevé.


Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?