Bộ nhớ nhà

Trong cuộc gọi webhook, bạn có thể lưu trữ các giá trị thông số trong nhiều phiên trong cùng một hộ gia đình (dựa trên Home Graph) trong bộ nhớ tại nhà. Hành động của bạn có thể sau đó sử dụng các giá trị được lưu trữ đó trong lời nhắc và điều kiện cũng như webhook của bạn mã có thể truy cập vào các giá trị trong bộ nhớ tại nhà của một hộ gia đình cụ thể khi cần thiết.

Trạng thái bộ nhớ tại nhà được chuyển vào yêu cầu app.handle() và được lưu trữ trong đối tượng home.

Các điểm hạn chế

Không thể sử dụng bộ nhớ trong nhà với các thiết bị di động vì thiết bị này không thuộc Nhà Biểu đồ. Trong mã webhook, hãy sử dụng chức năng thiết bị HOME_STORAGE để phân nhánh logic nghiệp vụ dựa trên khả năng của thiết bị của người dùng.

Bạn phải chọn sử dụng bộ nhớ tại nhà:

  1. Trong Bảng điều khiển Actions, hãy chuyển đến Deploy (Triển khai) > Thông tin thư mục.
  2. Trong phần Thông tin bổ sung, chọn hộp Trang chủ bộ nhớ.

Đọc và ghi dữ liệu trong một hộ gia đình

Để cập nhật hoặc thiết lập một giá trị mới trong bộ nhớ tại nhà, hãy chỉ định giá trị cho params của đối tượng home trong cuộc gọi webhook. Ví dụ sau đây đặt "exampleColor" thành "đỏ" trong bộ nhớ tại nhà:

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

Để truy cập vào dữ liệu được lưu trữ trong bộ nhớ tại nhà, hãy chỉ định dữ liệu đó cho một biến trong webhook . Ví dụ sau đây truy xuất một giá trị từ "exampleColor" trong nhà bộ nhớ:

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

Để xóa giá trị đã lưu trước đó, hãy đặt giá trị thành null trong cuộc gọi webhook. Ví dụ sau xoá giá trị của "exampleColor" trong bộ nhớ tại nhà:

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

Tham chiếu các giá trị được lưu trữ trong câu lệnh

Bạn có thể tham chiếu các giá trị được lưu trữ trong bộ nhớ tại nhà trong một lời nhắc. Để tham khảo giá trị, sử dụng $home.params.PARAMETER_NAME cú pháp, trong đó PARAMETER_NAME là tên được cung cấp trong webhook khi thông số được đặt.

Ví dụ: trước đây bạn đã lưu trữ một giá trị màu trong bộ nhớ tại nhà dưới dạng thuộc tính tham số exampleColor. Để truy cập vào giá trị đó trong một câu lệnh, bạn cần tham chiếu đến giá trị bằng $home.params.exampleColor:

JSON

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

Tham chiếu các giá trị được lưu trữ trong các điều kiện

Bạn cũng có thể tham chiếu các giá trị được lưu trữ trong bộ nhớ tại nhà trong điều kiện. Người nhận tham chiếu giá trị, sử dụng home.params.PARAMETER_NAME cú pháp, trong đó PARAMETER_NAME là tên được cung cấp trong webhook khi thông số được đặt.

Ví dụ: trước đây bạn đã lưu trữ một giá trị màu trong bộ nhớ tại nhà dưới dạng thuộc tính tham số exampleColor và bạn muốn khớp tham số đó với giá trị "red" theo phong cách . Trong điều kiện, bạn tham chiếu giá trị được lưu trữ bằng cách sử dụng home.params.exampleColor. Khi đó, biểu thức điều kiện của bạn sẽ có dạng như sau sau:

Cú pháp điều kiện

home.params.exampleColor == "red"
    

Dữ liệu bộ nhớ tại nhà sắp hết hạn

Dữ liệu bộ nhớ tại nhà bị xoá sau 90 ngày liên tiếp kể từ khi Hành động không bị xoá đã gọi. Gọi Hành động trên bất kỳ thiết bị nào liên kết với Home Graph cấu trúc đã đặt lại đồng hồ hẹn giờ 90 ngày. Nếu một cấu trúc Home Graph bị xoá, dữ liệu bộ nhớ tương ứng của nhà sẽ bị xoá.

Đối với những Hành động sử dụng bộ nhớ tại nhà, người quản lý cấu trúc Home Graph có thể xoá địa chỉ nhà riêng bộ nhớ cho các cấu trúc mà chúng quản lý trên trang của Hành động trong thư mục Trợ lý:

  1. Tìm và chọn Hành động mà bạn muốn xem hoặc xoá bộ nhớ người dùng.
  2. Di chuyển xuống cuối trang:
    • Để xoá dữ liệu được lưu trữ cho bạn trong bộ nhớ tại nhà, hãy nhấp vào Dừng action_name nhớ đến tôi.

Khi người quản lý thiết bị tách thiết bị khỏi cấu trúc, bộ nhớ trong nhà sẽ cũng tự phân ly. Dữ liệu về bộ nhớ trong nhà vẫn tiếp tục được liên kết với một thiết bị ngay cả khi người quản lý cấu trúc thay đổi, trừ khi người quản lý cấu trúc xóa thông tin đó.

Dữ liệu về bộ nhớ trong nhà trong trình mô phỏng

Khi kiểm thử Hành động bằng trình mô phỏng trong bảng điều khiển Actions, dữ liệu lưu trữ trong bộ nhớ tại nhà hoạt động hơi khác so với trên thiết bị. Trình mô phỏng được xem là một phần của Home Graph riêng, vì vậy dữ liệu không duy trì trên các thiết bị khác mà bạn có thể có trong mạng của mình. Ngoài ra, trang chủ dữ liệu lưu trữ không tồn tại trên các phiên khi Mô phỏng người dùng.

Tương tác mẫu

Dưới đây là hoạt động tương tác mẫu của một người dùng đã đăng nhập trong lần gọi đầu tiên tới Hành động:

Yêu cầu của người dùng Ok Google, hãy nói chuyện với ExampleAction.
Phản hồi của Trợ lý Nhận ExampleAction.
Phản hồi của Trợ lý Xin lưu ý rằng ExampleAction sẽ được lưu mỗi khi bạn chơi, những người khác trong gia đình bạn có thể tiếp tục từ nơi bạn đã dừng lại.
Phản hồi ExampleAction Xin chào người dùng đã được xác minh. Bạn đang ở cấp 0. Bạn có thể nói tiếp theo, đặt lại hoặc huỷ.
Yêu cầu của người dùng Tiếp theo.
Phản hồi ExampleAction Bạn đang ở cấp 1.
Yêu cầu của người dùng Rời khỏi.

Sau đó, khi cùng một người dùng đã xác minh quay lại Hành động sau một thời gian:

Yêu cầu của người dùng Ok Google, hãy nói chuyện với ExampleAction.
Phản hồi của Trợ lý Nhận ExampleAction.
Phản hồi ExampleAction Xin chào người dùng đã được xác minh. Bạn đang ở cấp 1. Bạn có thể nói tiếp theo, đặt lại hoặc huỷ.
Yêu cầu của người dùng Tiếp theo.
Phản hồi ExampleAction Bạn đang ở cấp 2.
Yêu cầu của người dùng Rời khỏi.

Ngày tiếp theo, một người dùng chưa được xác minh tương tác với Hành động trên một thiết bị khác trong cùng hộ gia đình (như nêu trên Home Graph).

Yêu cầu của người dùng Ok Google, hãy nói chuyện với ExampleAction.
Phản hồi của Trợ lý Nhận ExampleAction.
Phản hồi của Trợ lý Xin lưu ý rằng ExampleAction sẽ được lưu mỗi khi bạn chơi, những người khác trong gia đình bạn có thể tiếp tục từ nơi bạn đã dừng lại.
Phản hồi ExampleAction Xin chào người dùng khách. Bạn đang ở cấp 2. Bạn có thể nói tiếp theo, đặt lại hoặc huỷ.
Yêu cầu của người dùng Tiếp theo.
Phản hồi ExampleAction Bạn đang ở cấp 3.
Yêu cầu của người dùng Rời khỏi.