Penyimpanan rumah

Pada panggilan webhook, Anda dapat menyimpan parameter value di beberapa sesi dalam anggota keluarga yang sama (berdasarkan Grafik Rumah) di penyimpanan rumah. Action Anda dapat menggunakan nilai yang disimpan tersebut nanti dalam perintah dan kondisi, serta webhook Anda kode tertentu dapat mengakses nilai dalam penyimpanan rumah untuk rumah tangga tertentu jika diperlukan.

Status penyimpanan rumah diteruskan dalam permintaan app.handle() dan disimpan dalam objek home.

Batasan

Penyimpanan rumah tidak dapat digunakan dengan perangkat seluler karena perangkat tersebut bukan bagian dari Home Grafik. Di kode webhook Anda, gunakan kemampuan perangkat HOME_STORAGE untuk mencabangkan logika bisnis berdasarkan kemampuan perangkat pengguna.

Anda harus memilih untuk menggunakan penyimpanan rumah:

  1. Di Konsol Actions, buka Deploy > Informasi direktori.
  2. Di bagian Informasi Tambahan, centang kotak Rumah Google Cloud Storage.

Membaca dan menulis data dalam rumah tangga

Untuk memperbarui atau menetapkan nilai baru di penyimpanan rumah, tetapkan nilai ke params dari objek home dalam panggilan webhook. Contoh berikut mengatur "exampleColor" menjadi "merah" dalam penyimpanan rumah:

Node.js

// Assign color to home storage
app.handle('storeColor', conv => {
  let color = 'red';
  conv.home.params.exampleColor = color;
});
    

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "home": {
      "params": {
        "exampleColor": "red"
      }
    }
  }
}
    

Untuk mengakses data yang disimpan di penyimpanan rumah, tetapkan data ke variabel di webhook panggilan telepon. Contoh berikut mengambil nilai dari "exampleColor" di rumah penyimpanan:

Node.js

// Retrieve color from home storage
app.handle('getStoredColor', conv => {
  let color = conv.home.params.exampleColor;
});
    

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "home": {
      "params": {
        "homeColor": "red"
      }
    }
  }
}
    

Untuk menghapus nilai yang disimpan sebelumnya, tetapkan nilai ke null di panggilan webhook. Contoh berikut menghapus nilai "exampleColor" dalam penyimpanan rumah:

Node.js

// Clear color from home storage
app.handle('clearStoredColor', conv => {
  conv.home.params.exampleColor = null;
});
    

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "home": {
      "params": {}
    }
  }
}
    

Mereferensikan nilai tersimpan dalam perintah

Anda dapat mereferensikan nilai yang disimpan di penyimpanan rumah dalam perintah. Untuk referensi nilainya, gunakan $home.params.PARAMETER_NAME sintaksis, dengan PARAMETER_NAME adalah nama yang diberikan dalam webhook saat parameter ditetapkan.

Misalnya, Anda sebelumnya menyimpan nilai warna di penyimpanan rumah sebagai parameter exampleColor. Untuk mengakses nilai tersebut di prompt, Anda merujuk ke nilai menggunakan $home.params.exampleColor:

JSON

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

Mereferensikan nilai tersimpan dalam kondisi

Anda juga dapat mereferensikan nilai yang disimpan di penyimpanan rumah dalam kondisi. Kepada merujuk ke nilai, gunakan home.params.PARAMETER_NAME sintaksis, dengan PARAMETER_NAME adalah nama yang diberikan dalam webhook saat parameter ditetapkan.

Misalnya, Anda sebelumnya menyimpan nilai warna di penyimpanan rumah sebagai parameter exampleColor, dan Anda ingin mencocokkannya dengan nilai "merah" di . Dalam kondisi Anda, Anda mereferensikan nilai yang tersimpan menggunakan home.params.exampleColor. Ekspresi kondisi Anda kemudian akan terlihat seperti ini:

Sintaksis kondisi

home.params.exampleColor == "red"
    

Akhir masa berlaku data penyimpanan rumah

Data penyimpanan rumah akan dihapus total setelah 90 hari berturut-turut Action tidak dihapus dipanggil. Memanggil Action di perangkat apa pun yang terkait dengan Home Graph mengatur ulang penghitung waktu 90 hari. Jika struktur Home Graph dihapus, data penyimpanan rumah yang bersangkutan akan dihapus.

Untuk Action yang menggunakan penyimpanan rumah, pengelola struktur Home Graph dapat mengosongkan rumah penyimpanan untuk struktur yang dikelola dari halaman Tindakan di direktori Asisten:

  1. Cari dan pilih Tindakan yang ingin Anda lihat atau hapus penyimpanan pengguna Anda.
  2. Scroll ke bagian bawah halaman:
    • Untuk menghapus data yang disimpan untuk Anda di penyimpanan rumah, klik Stop action_name karena mengingat saya.

Ketika pengelola perangkat memisahkannya dari struktur, penyimpanan rumah juga terpisah. Data penyimpanan rumah akan terus dikaitkan dengan perangkat bahkan jika manajer struktur berubah, kecuali manajer struktur menghapusnya.

Data penyimpanan rumah di simulator

Saat menguji Action menggunakan simulator di Konsol Actions, data yang disimpan di penyimpanan rumah berperilaku sedikit berbeda dengan di penyimpanan perangkat seluler. Simulator dianggap sebagai bagian dari {i>Home Graph<i} sendiri, sehingga data tidak tetap ada di perangkat lain yang mungkin Anda miliki di jaringan Anda. Selain itu, beranda data penyimpanan tidak dipertahankan di seluruh sesi saat pesan Simulasikan belum diverifikasi setelan simulator pengguna diaktifkan.

Contoh interaksi

Berikut ini contoh interaksi dari pengguna yang login pada pemanggilan pertama Action:

Kueri pengguna Ok Google, bicara dengan ExampleAction.
Respons Asisten Mendapatkan ExampleAction.
Respons Asisten Sekadar informasi, ExampleAction disimpan setiap kali Anda memainkannya, jadi anggota keluarga lainnya dapat melanjutkan dari percakapan terakhir Anda.
Respons ExampleAction Pengguna terverifikasi yang terhormat. Anda berada di level 0. Ucapkan berikutnya, reset, atau batalkan.
Kueri pengguna Berikutnya.
Respons ExampleAction Anda berada di level 1.
Kueri pengguna Keluar.

Kemudian, ketika pengguna terverifikasi yang sama kembali ke Action setelah beberapa waktu:

Kueri pengguna Ok Google, bicara dengan ExampleAction.
Respons Asisten Mendapatkan ExampleAction.
Respons ExampleAction Pengguna terverifikasi yang terhormat. Anda berada di level 1. Ucapkan berikutnya, reset, atau batalkan.
Kueri pengguna Berikutnya.
Respons ExampleAction Anda berada di level 2.
Kueri pengguna Keluar.

Keesokan harinya, pengguna yang belum diverifikasi berinteraksi dengan Action di perangkat lain dalam rumah yang sama (seperti yang ditentukan pada Home Graph).

Kueri pengguna Ok Google, bicara dengan ExampleAction.
Respons Asisten Mendapatkan ExampleAction.
Respons Asisten Sekadar informasi, ExampleAction disimpan setiap kali Anda memainkannya, jadi anggota keluarga lainnya dapat melanjutkan dari percakapan terakhir Anda.
Respons ExampleAction Halo pengguna tamu. Anda berada di level 2. Ucapkan berikutnya, reset, atau batalkan.
Kueri pengguna Berikutnya.
Respons ExampleAction Anda berada di level 3.
Kueri pengguna Keluar.