Bộ nhớ của người dùng

Trong lệnh gọi webhook, bạn có thể lưu trữ giá trị thông số cho một người dùng cụ thể trên các phiên trong bộ nhớ của người dùng. Sau đó, Hành động của bạn có thể sử dụng các giá trị được lưu trữ đó sau trong lời nhắc và điều kiện, đồng thời mã webhook có thể truy cập vào các giá trị trong bộ nhớ của một người dùng cụ thể khi cần.

Trạng thái bộ nhớ của người dùng được truyền trong yêu cầu app.handle() và được lưu trữ trong đối tượng user.

Đọc và ghi dữ liệu trong các cuộc trò chuyện

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

Node.js

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

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "user": {
      "locale": "en-US",
      "params": {
        "verificationStatus": "VERIFIED",
        "exampleColor": "red"
      }
    }
  }
}
    

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

Node.js

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

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "user": {
      "locale": "en-US",
      "params": {
        "verificationStatus": "VERIFIED",
        "exampleColor": "red"
      }
    }
  }
}
    

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

Node.js

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

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "user": {
      "locale": "en-US",
      "params": {
        "verificationStatus": "VERIFIED"
      }
    }
  }
}
    

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ớ của người dùng trong một lời nhắc. Để tham chiếu giá trị, hãy sử dụng cú pháp $user.params.PARAMETER_NAME, trong đó PARAMETER_NAME là tên được cung cấp trong webhook khi thông số này được đặt.

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

JSON

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

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

Bạn cũng có thể tham chiếu các giá trị được lưu trữ trong bộ nhớ của người dùng trong conditions. Để tham chiếu giá trị, hãy sử dụng cú pháp user.params.PARAMETER_NAME, trong đó PARAMETER_NAME là tên được cung cấp trong webhook khi tham số này được đặt.

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

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

user.params.exampleColor == "red"
    

Hết hạn dữ liệu bộ nhớ của người dùng

Đối với người dùng đã xác minh, dữ liệu được lưu trữ trong bộ nhớ của người dùng sẽ hết hạn dựa trên chế độ cài đặt Hoạt động trên web và ứng dụng của họ. Ngoài ra, Hành động này cũng có thể bị xoá. Đối với những người dùng chưa được xác minh, Trợ lý sẽ xoá nội dung trong bộ nhớ của người dùng khi kết thúc cuộc trò chuyện.

Actions on Google đặt trạng thái xác minh của người dùng ở đầu mỗi cuộc trò chuyện dựa trên nhiều chỉ báo khi cuộc trò chuyện bắt đầu. Ví dụ: một người dùng đã đăng nhập vào Trợ lý Google trên thiết bị di động của họ có trạng thái xác minh là VERIFIED.

Sau đây là những lý do có thể khiến người dùng có trạng thái xác minh là GUEST:

  • Người dùng đã tắt tính năng kết quả cá nhân.
  • Người dùng đã tắt chế độ Hoạt động trên web và ứng dụng. Xin lưu ý rằng một số người dùng có thể đã tắt chế độ cài đặt này ở cấp miền.
  • Nếu một thiết bị đã bật tính năng Voice Match nhưng tính năng so khớp không thành công hoặc người dùng gọi Trợ lý mà không dùng giọng nói của họ (chẳng hạn như nhấn và giữ trên thiết bị Nest Home).
  • Người dùng chưa đăng nhập.

Luôn kiểm tra trạng thái xác minh của người dùng trước khi lưu trữ dữ liệu vào bộ nhớ của người dùng để ngăn người dùng khách tương tác với một tính năng mà họ sẽ không hoạt động được.

Khả năng hiển thị với người dùng

Là người dùng, bạn có thể xem dữ liệu được lưu trữ trong bộ nhớ của người dùng cho Hành động bạn gọi. Bạn cũng có thể xoá dữ liệu được lưu trữ trong bộ nhớ của người dùng khỏi một Hành động cụ thể hoặc ngăn dịch vụ ghi nhớ bạn.

Để xem dữ liệu đã lưu trữ hoặc để một dịch vụ không ghi nhớ bạn nữa, hãy làm theo các bước sau:

  1. Chuyển đến thư mục Trợ lý.
  2. Tìm và chọn Hành động mà bạn muốn xem hoặc xoá bộ nhớ của người dùng.
  3. Di chuyển xuống cuối trang:
    • Để xem nội dung trong bộ nhớ của người dùng, hãy nhấp vào [Xem dữ liệu đã lưu trữ].
    • Để đặt lại dữ liệu được lưu trữ trong bộ nhớ của người dùng cho dịch vụ, hãy nhấp vào Đặt lại.
    • Để xoá dữ liệu được lưu trữ trong bộ nhớ của người dùng và ngăn dịch vụ ghi nhớ bạn, hãy nhấp vào Ngừng action_name ghi nhớ tôi.