Penyimpanan sesi

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 "merah" 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"