พื้นที่เก็บข้อมูลในบ้าน

ในการเรียกเว็บฮุค คุณสามารถจัดเก็บค่าพารามิเตอร์ในหลายๆ เซสชันในครอบครัวเดียวกัน (อิงตาม Home Graph) ในพื้นที่เก็บข้อมูลในบ้านได้ จากนั้นการดำเนินการจะใช้ค่าที่จัดเก็บไว้ภายหลังในพรอมต์และเงื่อนไขได้ และโค้ดเว็บฮุคจะเข้าถึงค่าในพื้นที่เก็บข้อมูลในบ้านของครอบครัวหนึ่งๆ ได้เมื่อจำเป็น

ระบบจะส่งสถานะของพื้นที่เก็บข้อมูลในบ้านไปในคำขอ app.handle() และจัดเก็บไว้ในออบเจ็กต์ home

ข้อจำกัด

พื้นที่เก็บข้อมูลในบ้านจะใช้ร่วมกับอุปกรณ์เคลื่อนที่ไม่ได้ เนื่องจากไม่ได้เป็นส่วนหนึ่งของ Home Graph ในโค้ดเว็บฮุค ให้ใช้HOME_STORAGE ความสามารถของอุปกรณ์ เพื่อโยงโครงสร้างธุรกิจตามสิ่งที่อุปกรณ์ของผู้ใช้ทำได้

คุณต้องเลือกใช้พื้นที่เก็บข้อมูลในบ้าน โดยทำดังนี้

  1. ในคอนโซล Actions ให้ไปที่ทำให้ใช้งานได้ > ข้อมูลไดเรกทอรี
  2. ในส่วนข้อมูลเพิ่มเติม ให้เลือกช่องพื้นที่เก็บข้อมูล Home

อ่านและเขียนข้อมูลในครอบครัว

หากต้องการอัปเดตหรือกำหนดค่าใหม่ในพื้นที่เก็บข้อมูลภายในบ้าน ให้กำหนดค่าให้กับช่อง params ของออบเจ็กต์ home ในการเรียกใช้เว็บฮุค ตัวอย่างต่อไปนี้ตั้งค่า "exampleColor" เป็น "red" ในพื้นที่เก็บข้อมูลในบ้าน

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

หากต้องการเข้าถึงข้อมูลที่เก็บไว้ในพื้นที่เก็บข้อมูลในบ้าน ให้กำหนดข้อมูลดังกล่าวให้กับตัวแปรในการเรียกใช้เว็บฮุค ตัวอย่างต่อไปนี้ดึงค่าจาก "exampleColor" ในพื้นที่เก็บข้อมูลในบ้าน

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

หากต้องการล้างค่าที่บันทึกไว้ก่อนหน้านี้ ให้ตั้งค่าเป็น null ในการเรียกใช้เว็บฮุค ตัวอย่างต่อไปนี้จะล้างค่า "exampleColor" ในพื้นที่เก็บข้อมูลในบ้าน

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": {}
    }
  }
}
    

อ้างอิงค่าที่จัดเก็บไว้ภายในข้อความแจ้ง

คุณอ้างอิงค่าที่เก็บไว้ในพื้นที่เก็บข้อมูลในบ้านได้ในข้อความแจ้ง หากต้องการอ้างอิงค่า ให้ใช้ไวยากรณ์ $home.params.PARAMETER_NAME โดยที่ PARAMETER_NAME คือชื่อที่ระบุในเว็บฮุคเมื่อมีการตั้งค่าพารามิเตอร์

เช่น ก่อนหน้านี้คุณจัดเก็บค่าสีไว้ในพื้นที่เก็บข้อมูลในบ้านเป็นพารามิเตอร์ exampleColor หากต้องการเข้าถึงค่านั้นในพรอมต์ ให้อ้างอิงค่านั้นโดยใช้ $home.params.exampleColor ดังนี้

JSON

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

อ้างอิงค่าที่จัดเก็บไว้ภายในเงื่อนไข

นอกจากนี้ คุณยังอ้างอิงค่าที่เก็บไว้ในพื้นที่เก็บข้อมูลในบ้านได้ในส่วนconditions หากต้องการอ้างอิงค่า ให้ใช้ไวยากรณ์ home.params.PARAMETER_NAME โดยที่ PARAMETER_NAME คือชื่อที่ระบุในเว็บฮุคเมื่อมีการตั้งค่าพารามิเตอร์

เช่น ก่อนหน้านี้คุณจัดเก็บค่าสีไว้ในพื้นที่เก็บข้อมูลภายในบ้านเป็นพารามิเตอร์ exampleColor และคุณต้องการจับคู่กับค่า "red" ในเงื่อนไขหนึ่งๆ ในเงื่อนไขของคุณ คุณอ้างอิงค่าที่จัดเก็บไว้โดยใช้ home.params.exampleColor นิพจน์เงื่อนไข จะมีลักษณะดังนี้

ไวยากรณ์ของเงื่อนไข

home.params.exampleColor == "red"
    

การหมดอายุของข้อมูลพื้นที่เก็บข้อมูลในบ้าน

ระบบจะล้างข้อมูลในพื้นที่เก็บข้อมูลภายในบ้านหลังจากไม่มีการเรียกใช้การดำเนินการเป็นเวลา 90 วันติดต่อกัน การเรียกใช้การดำเนินการในอุปกรณ์ใดก็ตามที่เชื่อมโยงกับโครงสร้าง Home Graph จะรีเซ็ตตัวจับเวลา 90 วัน หากโครงสร้างของ Home Graph ถูกลบ ระบบจะล้างข้อมูลพื้นที่เก็บข้อมูลในบ้านที่ตรงกัน

สำหรับการดำเนินการที่ใช้พื้นที่เก็บข้อมูลในบ้าน ผู้จัดการโครงสร้างของ Home Graph จะล้างพื้นที่เก็บข้อมูลในบ้านสำหรับโครงสร้างที่จัดการได้จากหน้าของการดำเนินการในไดเรกทอรี Assistant โดยทำดังนี้

  1. ค้นหาและเลือกการดำเนินการที่ต้องการดูหรือล้างพื้นที่เก็บข้อมูลของผู้ใช้
  2. เลื่อนลงไปที่ด้านล่างของหน้า
    • หากต้องการนำข้อมูลที่จัดเก็บไว้ในพื้นที่เก็บข้อมูลในบ้านออก ให้คลิกหยุด action_name ไม่ให้จดจำฉัน

เมื่อผู้จัดการอุปกรณ์แยกอุปกรณ์ออกจากโครงสร้างแล้ว พื้นที่เก็บข้อมูลในบ้านก็จะแยกการเชื่อมโยงด้วย ข้อมูลพื้นที่เก็บข้อมูลในบ้านจะยังเชื่อมโยงกับอุปกรณ์ต่อไป แม้จะมีการเปลี่ยนผู้จัดการโครงสร้าง เว้นแต่ผู้จัดการโครงสร้างจะล้างข้อมูลแทน

ข้อมูลพื้นที่เก็บข้อมูลในบ้านในเครื่องมือจำลอง

เมื่อทดสอบการดำเนินการโดยใช้เครื่องจำลองในคอนโซลการดำเนินการ ข้อมูลที่เก็บไว้ในพื้นที่เก็บข้อมูลในบ้านจะทำงานต่างจากในอุปกรณ์จริงเล็กน้อย เครื่องมือจำลองถือเป็นส่วนหนึ่งของ Home Graph ในตัว ข้อมูลจึงไม่ได้อยู่กับอุปกรณ์อื่นๆ ที่คุณอาจมีในเครือข่าย นอกจากนี้ ข้อมูลพื้นที่เก็บข้อมูลภายในบ้านจะไม่คงอยู่ในเซสชันต่างๆ เมื่อเปิดใช้การตั้งค่าเครื่องจำลองจำลองผู้ใช้ที่ไม่ได้รับการยืนยัน

ตัวอย่างการโต้ตอบ

ต่อไปนี้คือตัวอย่างการโต้ตอบของผู้ใช้ที่ลงชื่อเข้าใช้ในการเรียกใช้การดำเนินการครั้งแรก

คำค้นหาของผู้ใช้ Ok Google พูดกับ ExampleAction
คำตอบของ Assistant การรับ ExampleAction
คำตอบของ Assistant โปรดทราบว่า ExampleAction จะได้รับการบันทึกทุกครั้งที่คุณเล่น เพื่อให้คนอื่นๆ ในครอบครัวสามารถเล่นต่อจากจุดที่ค้างไว้ได้
การตอบกลับของ ExampleAction สวัสดี ผู้ใช้ที่ผ่านการยืนยันแล้ว คุณอยู่ที่ระดับ 0 พูดว่าถัดไป รีเซ็ต หรือยกเลิก
คำค้นหาของผู้ใช้ ถัดไป,
การตอบกลับของ ExampleAction คุณอยู่ที่ระดับ 1
คำค้นหาของผู้ใช้ ออก

จากนั้นเมื่อผู้ใช้ที่ได้รับการยืนยันคนเดิมกลับมาที่การดำเนินการหลังจากผ่านไปสักพัก

คำค้นหาของผู้ใช้ Ok Google พูดกับ ExampleAction
คำตอบของ Assistant การรับ ExampleAction
การตอบกลับของ ExampleAction สวัสดี ผู้ใช้ที่ผ่านการยืนยันแล้ว คุณอยู่ที่ระดับ 1 พูดว่าถัดไป รีเซ็ต หรือยกเลิก
คำค้นหาของผู้ใช้ ถัดไป,
การตอบกลับของ ExampleAction คุณอยู่ที่ระดับ 2
คำค้นหาของผู้ใช้ ออก

ในวันถัดไป ผู้ใช้ที่ไม่ได้รับการยืนยันโต้ตอบกับการดำเนินการในอุปกรณ์อื่นภายในครอบครัวเดียวกัน (ตามที่ระบุไว้ใน Home Graph)

คำค้นหาของผู้ใช้ Ok Google พูดกับ ExampleAction
คำตอบของ Assistant การรับ ExampleAction
คำตอบของ Assistant โปรดทราบว่า ExampleAction จะได้รับการบันทึกทุกครั้งที่คุณเล่น เพื่อให้คนอื่นๆ ในครอบครัวสามารถเล่นต่อจากจุดที่ค้างไว้ได้
การตอบกลับของ ExampleAction สวัสดี ผู้ใช้ที่เป็นผู้มาเยือน คุณอยู่ที่ระดับ 2 พูดว่าถัดไป รีเซ็ต หรือยกเลิก
คำค้นหาของผู้ใช้ ถัดไป,
การตอบกลับของ ExampleAction คุณอยู่ที่ระดับ 3
คำค้นหาของผู้ใช้ ออก