Anda dapat menyimpan nilai parameter untuk pengguna tertentu dalam percakapan di penyimpanan sesi. Action Anda kemudian dapat menggunakan nilai yang disimpan tersebut nanti dalam perintah dan kondisi tertentu, dan kode webhook Anda dapat mengakses nilai di penyimpanan sesi untuk percakapan jika diperlukan.
Selama percakapan, data apa pun yang dikumpulkan menggunakan jenis disimpan dalam sesi
Storage. Anda juga dapat berinteraksi dengan data dalam penyimpanan sesi menggunakan panggilan webhook.
Untuk panggilan webhook, status penyimpanan sesi diteruskan dalam app.handle()
permintaan dan disimpan di objek session
.
Data yang disimpan di penyimpanan sesi akan habis masa berlakunya saat percakapan berakhir.
Membaca dan menulis data ke penyimpanan sesi
Untuk memperbarui atau menetapkan nilai baru dalam penyimpanan sesi, tetapkan nilai ke elemen
Kolom params
dari objek session
dalam panggilan webhook. Contoh berikut
mengatur "exampleColor" menjadi "merah" penyimpanan dalam sesi:
Node.js
// Assign color to session storage app.handle('storeColor', conv => { let color = 'red'; conv.session.params.exampleColor = color; });
JSON
{ "responseJson": { "session": { "id": "12345678901234567890", "params": { "exampleColor": "red" } }, "prompt": { "override": false } } }
Untuk mengakses data yang disimpan di penyimpanan sesi, tetapkan data ke variabel di webhook panggilan telepon. Contoh berikut mengambil nilai dari "exampleColor" dalam sesi penyimpanan:
Node.js
// Retrieve color from session storage app.handle('getStoredColor', conv => { let color = conv.session.params.exampleColor; });
JSON
{ "responseJson": { "session": { "id": "12345678901234567890", "params": { "exampleColor": "red" } }, "prompt": { "override": false } } }
Untuk menghapus nilai yang disimpan sebelumnya, tetapkan nilai ke null
di panggilan webhook.
Contoh berikut menghapus nilai "exampleColor" penyimpanan dalam sesi:
Node.js
// Clear color from session storage app.handle('clearStoredColor', conv => { conv.session.params.exampleColor = null; });
JSON
{ "responseJson": { "session": { "id": "12345678901234567890", "params": {} }, "prompt": { "override": false } } }
Mereferensikan nilai tersimpan dalam perintah
Anda dapat mereferensikan nilai yang disimpan dalam penyimpanan sesi dalam perintah. Untuk mereferensikan
gunakan sintaksis $session.params.PARAMETER_NAME
, dengan
PARAMETER_NAME
adalah nama yang diberikan di webhook saat parameter
sudah disetel.
Misalnya, Anda sebelumnya menyimpan nilai warna dalam penyimpanan sesi sebagai
parameter exampleColor
. Untuk mengakses nilai tersebut di prompt, Anda merujuk ke
nilai menggunakan $session.params.exampleColor
:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $session.params.exampleColor." }] } }] }
Mereferensikan nilai tersimpan dalam kondisi
Anda juga dapat mereferensikan nilai yang disimpan dalam penyimpanan sesi dalam kondisi. Kepada
merujuk ke nilai, gunakan session.params.PARAMETER_NAME
dengan PARAMETER_NAME
adalah nama yang diberikan di webhook saat
parameter ditetapkan.
Misalnya, Anda sebelumnya menyimpan nilai warna dalam penyimpanan sesi sebagai
parameter exampleColor
, dan Anda ingin mencocokkannya dengan nilai "red" di
. Dalam kondisi Anda, Anda mereferensikan nilai yang tersimpan menggunakan
session.params.exampleColor
. Ekspresi kondisi Anda akan terlihat seperti ini:
Sintaksis kondisi
session.params.exampleColor == "red"