Mengatur atribut kompleks di bot Lex V2 Anda - Amazon Lex

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengatur atribut kompleks di bot Lex V2 Anda

Atribut sesi dan permintaan adalah string-to-string peta atribut dan nilai. Dalam banyak kasus, Anda dapat menggunakan peta string untuk mentransfer nilai atribut antara aplikasi klien Anda dan bot. Namun, dalam beberapa kasus, Anda mungkin perlu mentransfer data biner atau struktur kompleks yang tidak dapat dengan mudah dikonversi ke peta string. Misalnya, JSON objek berikut mewakili array dari tiga kota terpadat di Amerika Serikat:

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

Array data ini tidak diterjemahkan dengan baik ke string-to-string peta. Dalam kasus seperti itu, Anda dapat mengubah objek menjadi string sederhana sehingga Anda dapat mengirimkannya ke bot Anda dengan RecognizeUtteranceoperasi RecognizeTextdan.

Misalnya, jika Anda menggunakan JavaScript, Anda dapat menggunakan JSON.stringify operasi untuk mengonversi objek keJSON, dan JSON.parse operasi untuk mengonversi JSON teks menjadi JavaScript objek:

// 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);

Untuk mengirim atribut dengan RecognizeUtterance operasi, Anda harus base64 menyandikan atribut sebelum Anda menambahkannya ke header permintaan, seperti yang ditunjukkan dalam kode berikut: JavaScript

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

Anda dapat mengirim data biner ke RecognizeText dan RecognizeUtterance operasi dengan terlebih dahulu mengonversi data ke string yang dikodekan base64, dan kemudian mengirim string sebagai nilai dalam atribut sesi:

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