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

Trong cuộc gọi webhook, bạn có thể lưu trữ các giá trị thông số cho một người dùng cụ thể trê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ữ đó trong tương lai lời nhắc và điều kiện của bạn và mã webhook của bạn có thể truy cập vào các giá trị trong bộ nhớ của người dùng cho người dùng cụ thể khi cần thiết.

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

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

Để cập nhật hoặc thiết lập một giá trị mới trong bộ nhớ của người dùng, hãy chỉ định giá trị cho params của đối tượng user trong cuộc gọi webhook. Các tập ví dụ sau đây "exampleColor" thành "đỏ" 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 webhook . Ví dụ sau đây truy xuất một giá trị từ "exampleColor" trong người dùng bộ nhớ:

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

Để 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ớ 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 khảo 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 đã đượ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 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 $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 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ớ của người dùng trong điều kiện. Người nhận tham chiếu giá trị, sử dụng user.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ớ của người dùng 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 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"
    

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

Đố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 theo Web và Hoạt động trong ứng dụng và cũng có thể tự xoá bằng chính Hành động. Đối với 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 tại phần kết thúc cuộc trò chuyện.

Hành động trên 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. Như ví dụ: một người dùng đăng nhập vào Trợ lý Google trên thiết bị di động có trạng thái xác minh của 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 Web & Hoạt động trong ứng dụng. Hãy nhớ 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 thiết bị đã bật tính năng Voice Match nhưng không so khớp được 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 màn hình Nest Home thiết bị).
  • 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ới người dùng bộ nhớ để ngăn người dùng khách tương tác với một tính năng không hoạt động được cho họ.

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 các Hành động mà 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 bạn đã lưu trữ hoặc để không cho một dịch vụ ghi nhớ bạn, hãy làm theo các bước sau các bước:

  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ớ người dùng.
  3. Di chuyển xuống cuối trang:
    • Để xem nội dung của bộ nhớ 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ụ này, 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ừng dịch vụ ghi nhớ bạn, hãy nhấp vào Không cho action_name ghi nhớ tôi nữa.