Configuration des attributs de session pour votre bot Lex V2 - 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.

Configuration des attributs de session pour votre bot Lex V2

Les attributs de session contiennent des informations spécifiques à l'application qui sont transmises entre un bot et une application cliente au cours d'une session. Amazon Lex transmet les attributs de session à toutes les fonctions Lambda configurées pour un bot. Si une fonction Lambda ajoute ou met à jour des attributs de session, Amazon Lex transmet les nouvelles informations à l'application cliente.

Utilisez les attributs de session dans vos fonctions Lambda pour initialiser un bot et personnaliser les invites et les cartes de réponse. Par exemple :

  • Initialisation — Dans un robot de commande de pizzas, l'application client transmet l'emplacement de l'utilisateur en tant qu'attribut de session lors du premier appel à l'RecognizeUtteranceopération RecognizeTextor. Par exemple, "Location": "111 Maple Street". La fonction Lambda utilise ces informations pour trouver la pizzeria la plus proche pour passer la commande.

  • Personnaliser les invites : configurez les invites et les cartes de réponse pour faire référence aux attributs de session. Par exemple, « Hey [FirstName], quelles garnitures aimerais-tu ? » Si vous transmettez le prénom de l'utilisateur comme attribut de session ({"FirstName": "Vivian"}), Amazon Lex remplace l'espace réservé par le nom. Il envoie ensuite une demande personnalisée à l'utilisateur : « Hé Vivian, quelles garnitures aimerais-tu ? »

Les attributs de session sont conservés pendant toute la durée de la session. Amazon Lex les stocke dans un magasin de données crypté jusqu'à la fin de la session. Le client peut créer des attributs de session dans une demande en appelant l'RecognizeUtteranceopération RecognizeTextou avec le sessionAttributes champ défini sur une valeur. Une fonction Lambda peut créer un attribut de session dans une réponse. Une fois que le client ou une fonction Lambda a créé un attribut de session, la valeur d'attribut stockée est utilisée chaque fois que l'application cliente n'inclut aucun sessionAttribute champ dans une demande adressée à Amazon Lex.

Par exemple, supposons que vous ayez deux attributs de session, {"x": "1", "y": "2"}. Si le client appelle l'RecognizeUtteranceopération RecognizeText ou sans spécifier le sessionAttributes champ, Amazon Lex appelle la fonction Lambda avec les attributs de session enregistrés (){"x": 1, "y": 2}. Si la fonction Lambda ne renvoie pas les attributs de session, Amazon Lex renvoie les attributs de session stockés à l'application cliente.

Si l'application cliente ou une fonction Lambda transmet les attributs de session, Amazon Lex met à jour les attributs de session enregistrés. La transmission d'une valeur existante comme {"x": 2} met à jour la valeur stockée. Si vous transmettez un nouvel ensemble d'attributs de session, par exemple {"z": 3}, les valeurs existantes sont supprimées et seule la nouvelle valeur est conservée. Lorsqu'une carte vide, {}, est transmise, les valeurs stockées sont effacées.

Pour envoyer des attributs de session à Amazon Lex, vous devez créer une string-to-string carte des attributs. L'exemple suivant montre comment mapper des attributs de session :

{ "attributeName": "attributeValue", "attributeName": "attributeValue" }

Pour l'RecognizeTextopération, vous insérez la carte dans le corps de la demande à l'aide du sessionAttributes champ de la sessionState structure, comme suit :

"sessionState": { "sessionAttributes": { "attributeName": "attributeValue", "attributeName": "attributeValue" } }

Pour l'RecognizeUtteranceopération, vous encodez la carte en base64, puis vous l'envoyez dans le cadre de l'x-amz-lex-session-stateen-tête.

Si vous envoyez des données structurées ou binaires dans un attribut de session, vous devez tout d'abord convertir les données en chaîne simple. Pour de plus amples informations, veuillez consulter Configuration d'attributs complexes dans votre bot Lex V2.