Penyimpanan sesi

Anda dapat menyimpan parameter value untuk pengguna tertentu dalam percakapan di penyimpanan sesi. Action Anda kemudian dapat menggunakan nilai yang disimpan tersebut nanti dalam perintah dan kondisi, dan kode webhook Anda dapat mengakses nilai dalam penyimpanan sesi untuk percakapan jika diperlukan.

Selama percakapan, semua data yang dikumpulkan menggunakan jenis akan disimpan di penyimpanan sesi. Anda juga dapat berinteraksi dengan data di penyimpanan sesi menggunakan panggilan webhook. Untuk panggilan webhook, status penyimpanan sesi diteruskan dalam permintaan app.handle() dan disimpan dalam 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 kolom params dari objek session dalam panggilan webhook. Contoh berikut menetapkan "exampleColor" ke "red" dalam penyimpanan 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 ke variabel dalam panggilan webhook. Contoh berikut mengambil nilai dari "exampleColor" di penyimpanan sesi:

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 dalam panggilan webhook. Contoh berikut menghapus nilai "exampleColor" dalam penyimpanan 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 yang disimpan dalam prompt

Anda dapat mereferensikan nilai yang disimpan dalam penyimpanan sesi di prompt. Untuk mereferensikan nilai, gunakan sintaksis $session.params.PARAMETER_NAME, dengan PARAMETER_NAME adalah nama yang diberikan dalam webhook saat parameter ditetapkan.

Misalnya, sebelumnya Anda menyimpan nilai warna di penyimpanan sesi sebagai parameter exampleColor. Untuk mengakses nilai tersebut dalam perintah, Anda mereferensikan nilai tersebut menggunakan $session.params.exampleColor:

JSON

{
  "candidates": [{
    "first_simple": {
      "variants": [{
        "speech": "Your favorite color is $session.params.exampleColor."
      }]
    }
  }]
}
    

Mereferensikan nilai yang disimpan dalam kondisi

Anda juga dapat mereferensikan nilai yang disimpan dalam penyimpanan sesi dalam conditions. Untuk mereferensikan nilai, gunakan sintaksis session.params.PARAMETER_NAME, dengan PARAMETER_NAME adalah nama yang diberikan dalam webhook saat parameter ditetapkan.

Misalnya, sebelumnya Anda menyimpan nilai warna di penyimpanan sesi sebagai parameter exampleColor, dan ingin mencocokkannya dengan nilai "red" dalam kondisi. Dalam kondisi Anda, Anda mereferensikan nilai yang disimpan menggunakan session.params.exampleColor. Ekspresi kondisi Anda akan terlihat seperti ini:

Sintaksis kondisi

session.params.exampleColor == "red"