Mengatur atribut sesi - 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

Atribut sesi berisi informasi khusus aplikasi yang diteruskan antara bot dan aplikasi klien selama sesi berlangsung. 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 menyesuaikan prompt dan kartu respons. Misalnya:

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

  • 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 sesi ({"FirstName": "Vivian"}), Amazon Lex mengganti nama untuk placeholder. Kemudian mengirimkan prompt yang dipersonalisasi kepada pengguna, “Hei Vivian, topping mana yang Anda inginkan?”

Atribut sesi bertahan selama durasi sesi. Amazon Lex menyimpannya di penyimpanan data terenkripsi hingga sesi berakhir. Klien dapat membuat atribut sesi dalam permintaan dengan memanggil baik RecognizeTextatau RecognizeUtteranceoperasi dengan sessionAttributes bidang ditetapkan ke nilai. Fungsi Lambda dapat membuat atribut sesi dalam respons. Setelah klien atau fungsi Lambda membuat atribut sesi, nilai atribut yang disimpan 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 RecognizeText atau RecognizeUtterance operasi tanpa menentukan sessionAttributes bidang, Amazon Lex memanggil fungsi Lambda dengan atribut sesi yang disimpan (). {"x": 1, "y": 2} Jika fungsi Lambda tidak mengembalikan atribut sesi, Amazon Lex mengembalikan atribut sesi yang disimpan 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 melewati serangkaian 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 tubuh 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 ke string sederhana. Untuk informasi selengkapnya, lihat Mengatur atribut kompleks.