Impostazione di attributi complessi nel tuo bot Lex V2 - Amazon Lex

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Impostazione di attributi complessi nel tuo bot Lex V2

Gli attributi di sessione e richiesta sono string-to-string mappe di attributi e valori. In molti casi puoi utilizzare la mappa stringa per trasferire i valori degli attributi tra l'applicazione client e un bot, mentre in alcuni casi potresti dover trasferire i dati binari o una struttura complessa che non può essere convertita facilmente in una mappa stringa. Ad esempio, l'JSONoggetto seguente rappresenta una matrice delle tre città più popolose degli Stati Uniti:

{ "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" } } ] }

Questa serie di dati non si traduce bene in una string-to-string mappa. In tal caso, puoi trasformare un oggetto in una semplice stringa in modo da poterlo inviare al tuo bot con le RecognizeUtteranceoperazioni RecognizeTextand.

Ad esempio, se si utilizza JavaScript, è possibile utilizzare l'JSON.stringifyoperazione per convertire un oggetto in e l'JSON.parseoperazione per convertire il JSON testo in un JavaScript oggetto: 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);

Per inviare attributi con l'RecognizeUtteranceoperazione, è necessario codificare gli attributi in base64 prima di aggiungerli all'intestazione della richiesta, come illustrato nel codice seguente: JavaScript

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

Puoi inviare i dati binari alle operazioni RecognizeText e RecognizeUtterance convertendo dapprima i dati in una stringa con codifica base64, quindi inviando la stringa come valore negli attributi di sessione:

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