Configuration d'attributs complexes dans 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 d'attributs complexes dans votre bot Lex V2

Les attributs de session et de demande sont des string-to-string cartes d'attributs et de valeurs. Dans de nombreux cas, vous pouvez utiliser le mappage de chaînes pour transférer les valeurs d'attribut entre votre application cliente et un bot. Cependant, dans certains cas, vous devez transférer des données binaires ou une structure complexe qu'il n'est pas facile de convertir en mappage de chaînes. Par exemple, l'JSONobjet suivant représente un tableau des trois villes les plus peuplées des États-Unis :

{ "cities": [ { "city": { "name": "New York", "state": "New York", "pop": "8537673" } }, { "city": { "name": "Los Angeles", "state": "California", "pop": "3976322" } }, { "city": { "name": "Chicago", "state": "Illinois", "pop": "2704958" } } ] }

Ce tableau de données ne se traduit pas bien en string-to-string carte. Dans ce cas, vous pouvez transformer un objet en une chaîne simple afin de pouvoir l'envoyer à votre bot avec les RecognizeUtteranceopérations RecognizeTextet.

Par exemple, si vous utilisez JavaScript, vous pouvez utiliser l'JSON.stringifyopération pour convertir un objet en objet et l'JSON.parseopération pour convertir JSON du texte en JavaScript objet : JSON

// To convert an object to a string. var jsonString = JSON.stringify(object, null, 2); // To convert a string to an object. var obj = JSON.parse(JSON string);

Pour envoyer des attributs avec cette RecognizeUtterance opération, vous devez encoder les attributs en base64 avant de les ajouter à l'en-tête de la demande, comme indiqué dans le code suivant : JavaScript

var encodedAttributes = new Buffer(attributeString).toString("base64");

Pour envoyer des données binaires aux opérations RecognizeText et RecognizeUtterance, convertissez d'abord les données en chaîne codée en base64, puis envoyez la chaîne en tant que valeur dans les attributs de session :

"sessionAttributes" : { "binaryData": "base64 encoded data" }