Mengatur atribut sesi untuk 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 sesi untuk bot Lex V2 Anda

Atribut sesi berisi informasi khusus aplikasi yang diteruskan antara bot dan aplikasi klien selama sesi. Amazon Lex meneruskan atribut sesi ke semua fungsi Lambda yang dikonfigurasi untuk bot. Jika fungsi Lambda menambahkan atau memperbarui atribut sesi, Amazon Lex meneruskan informasi baru kembali ke aplikasi klien.

Gunakan atribut sesi dalam fungsi Lambda Anda untuk menginisialisasi bot dan untuk menyesuaikan prompt dan kartu respons. Sebagai contoh:

  • Inisialisasi — Dalam bot pemesanan pizza, aplikasi klien melewati lokasi pengguna sebagai atribut sesi dalam panggilan pertama ke RecognizeUtteranceoperasi RecognizeTextatau. Misalnya, "Location": "111 Maple Street". Fungsi Lambda menggunakan informasi ini untuk menemukan restoran pizza terdekat untuk melakukan pemesanan.

  • Personalisasi prompt - Konfigurasikan prompt dan kartu respons untuk merujuk ke atribut sesi. Misalnya, “Hei [FirstName], topping apa yang Anda inginkan?” Jika Anda meneruskan nama depan pengguna sebagai atribut session ({"FirstName": "Vivian"}), Amazon Lex mengganti nama untuk placeholder. Kemudian mengirimkan prompt yang dipersonalisasi kepada pengguna, “Hai Vivian, topping mana yang Anda inginkan?”

Atribut sesi bertahan selama sesi berlangsung. Amazon Lex menyimpannya di penyimpanan data terenkripsi hingga sesi berakhir. Klien dapat membuat atribut sesi dalam permintaan dengan memanggil RecognizeUtteranceoperasi RecognizeTextatau dengan sessionAttributes bidang yang disetel ke nilai. Fungsi Lambda dapat membuat atribut sesi dalam respons. Setelah klien atau fungsi Lambda membuat atribut session, nilai atribut tersimpan digunakan kapan saja aplikasi klien tidak menyertakan sessionAttribute bidang dalam permintaan ke Amazon Lex.

Misalnya, Anda memiliki dua atribut sesi,{"x": "1", "y": "2"}. Jika klien memanggil RecognizeUtterance operasi RecognizeText atau tanpa menentukan sessionAttributes bidang, Amazon Lex memanggil fungsi Lambda dengan atribut {"x": 1, "y": 2} sesi tersimpan (). Jika fungsi Lambda tidak menampilkan atribut sesi, Amazon Lex mengembalikan atribut sesi tersimpan ke aplikasi klien.

Jika aplikasi klien atau fungsi Lambda melewati atribut sesi, Amazon Lex memperbarui atribut sesi yang disimpan. Melewati nilai yang ada, seperti {"x": 2}, memperbarui nilai yang disimpan. Jika Anda melewatkan satu set atribut sesi baru, seperti{"z": 3}, nilai yang ada akan dihapus dan hanya nilai baru yang disimpan. Ketika peta kosong,{}, dilewatkan, nilai yang disimpan dihapus.

Untuk mengirim atribut sesi ke Amazon Lex, Anda membuat string-to-string peta atribut. Berikut ini menunjukkan cara memetakan atribut sesi:

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

Untuk RecognizeText operasi, Anda memasukkan peta ke dalam badan permintaan menggunakan sessionAttributes bidang sessionState struktur, sebagai berikut:

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

Untuk RecognizeUtterance operasi, Anda base64 menyandikan peta, dan kemudian mengirimkannya sebagai bagian dari header. x-amz-lex-session-state

Jika Anda mengirim data biner atau terstruktur dalam atribut sesi, Anda harus terlebih dahulu mengubah data menjadi string sederhana. Untuk informasi selengkapnya, lihat Mengatur atribut kompleks di bot Lex V2 Anda.