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. varobj
= 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
"
}