Définition des attributs de session - Amazon Lex V1

Si vous utilisez Amazon Lex V2, consultez plutôt le guide Amazon Lex V2.

 

Si vous utilisez Amazon Lex V1, nous vous recommandons de mettre à niveau vos robots vers Amazon Lex V2. Nous n'ajoutons plus de nouvelles fonctionnalités à la V1 et recommandons vivement d'utiliser la V2 pour tous les nouveaux robots.

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.

Définition des attributs de session

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. Par exemple :

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'PostTextopération PostContent or. 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": "Jo"}), Amazon Lex remplace l'espace réservé par le nom. Il envoie ensuite un message personnalisé à l'utilisateur, « Hey Jo, which toppings would you like? ».

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'opération PostContent ou PostText avec une valeur indiquée dans le champ sessionAttributes. 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'PostTextopération PostContent 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'opération PostText, vous insérez le mappage dans le corps de la requête en utilisant le champ sessionAttributes comme suit :

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

Pour l'opération PostContent, vous codez le mappage en base64, puis l'envoyez en tant qu'en-tête x-amz-lex-session-attributes.

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 Définition d'attributs complexes.