사용자 저장용량

웹훅 호출에서는 사용자 스토리지의 여러 세션에 걸쳐 특정 사용자의 매개변수 값을 저장할 수 있습니다. 그러면 작업이 나중에 프롬프트 및 조건에서 이러한 저장된 값을 사용할 수 있고, 필요한 경우 웹훅 코드가 특정 사용자의 사용자 저장소에 있는 값에 액세스할 수 있습니다.

사용자 스토리지의 상태는 app.handle() 요청으로 전달되고 user 객체에 저장됩니다.

대화에서 데이터 읽기 및 쓰기

사용자 스토리지의 값을 업데이트하거나 새 값을 설정하려면 웹훅 호출에서 user 객체의 params 필드에 값을 할당합니다. 다음 예에서는 사용자 스토리지에서 'exampleColor'를 'red'로 설정합니다.

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

사용자 저장소에 저장된 데이터에 액세스하려면 웹훅 호출의 변수에 데이터를 할당합니다. 다음 예는 사용자 저장소의 'exampleColor'에서 값을 가져옵니다.

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

이전에 저장한 값을 삭제하려면 웹훅 호출에서 값을 null로 설정합니다. 다음 예에서는 사용자 스토리지에서 'exampleColor'의 값을 지웁니다.

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

프롬프트 내에서 저장된 값 참조

프롬프트에서 사용자 스토리지에 저장된 값을 참조할 수 있습니다. 값을 참조하려면 $user.params.PARAMETER_NAME 구문을 사용합니다. 여기서 PARAMETER_NAME은 매개변수가 설정되었을 때 웹훅에 지정된 이름입니다.

예를 들어 이전에는 사용자 스토리지에 색상 값을 exampleColor 매개변수로 저장했습니다. 프롬프트에서 해당 값에 액세스하려면 $user.params.exampleColor을 사용하여 해당 값을 참조합니다.

JSON

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

조건 내에서 저장된 값 참조

conditions에서 사용자 스토리지에 저장된 값을 참조할 수도 있습니다. 값을 참조하려면 user.params.PARAMETER_NAME 구문을 사용합니다. 여기서 PARAMETER_NAME은 매개변수가 설정되었을 때 웹훅에 지정된 이름입니다.

예를 들어 이전에 사용자 스토리지에 색상 값을 exampleColor 매개변수로 저장했으며 조건의 'red' 값과 일치시키려고 합니다. 조건에서 user.params.exampleColor를 사용하여 저장된 값을 참조합니다. 그러면 조건식이 다음과 같이 표시됩니다.

조건 문법

user.params.exampleColor == "red"
    

사용자 스토리지 데이터 만료

확인된 사용자의 경우 사용자 스토리지에 저장된 데이터는 웹 및 앱 활동 설정에 따라 만료되며 작업 자체에서 삭제할 수도 있습니다. 확인되지 않은 사용자의 경우 어시스턴트는 대화가 끝날 때 사용자 저장용량의 콘텐츠를 삭제합니다.

Actions on Google은 대화가 시작될 때 다양한 지표를 기반으로 각 대화를 시작할 때 사용자의 확인 상태를 설정합니다. 예를 들어 휴대기기에서 Google 어시스턴트에 로그인한 사용자의 인증 상태는 VERIFIED입니다.

사용자의 인증 상태가 GUEST인 이유는 다음과 같습니다.

  • 사용자가 개인 검색결과를 사용 중지했습니다.
  • 사용자가 웹 및 앱 활동을 사용 중지했습니다. 일부 사용자는 도메인 수준에서 이 설정을 사용 중지할 수 있습니다.
  • 기기에 Voice Match가 사용 설정되어 있고 일치에 실패하거나 사용자가 음성을 사용하지 않고 어시스턴트를 호출하는 경우 (예: Nest Home 기기 길게 누르기)
  • 사용자가 로그인하지 않았습니다.

게스트 사용자가 실패할 수 있는 기능과 상호작용하는 것을 방지하려면 사용자 저장소에 데이터를 저장하기 전에 항상 사용자의 확인 상태를 확인해야 합니다.

사용자에게 공개 상태

사용자는 자신이 호출하는 작업의 사용자 스토리지에 저장된 데이터를 볼 수 있습니다. 특정 작업에서 사용자 저장소에 저장된 데이터를 삭제하거나 서비스가 더 이상 나를 기억하지 않도록 할 수도 있습니다.

저장된 데이터를 보거나 서비스가 사용자를 기억하지 않도록 하려면 다음 단계를 따르세요.

  1. 어시스턴트 디렉터리로 이동합니다.
  2. 사용자 스토리지를 확인하거나 삭제하려는 작업을 찾아 선택합니다.
  3. 페이지 하단으로 스크롤합니다.
    • 사용자 스토리지의 콘텐츠를 보려면 [저장된 데이터 보기]를 클릭합니다.
    • 서비스의 사용자 스토리지에 저장된 데이터를 재설정하려면 재설정을 클릭합니다.
    • 사용자 스토리지에 저장된 데이터를 삭제하고 서비스에서 내 정보를 기억하지 않도록 하려면 action_name이(가) 나를 기억하지 못하도록 중지를 클릭합니다.