가정용

웹훅 호출에서는 Home Graph를 기반으로 동일한 가구의 여러 세션에 걸쳐 매개변수 값을 홈 스토리지에 저장할 수 있습니다. 그러면 작업이 나중에 프롬프트 및 조건에서 이러한 저장된 값을 사용할 수 있으며, 필요한 경우 웹훅 코드는 특정 가족의 홈 스토리지 값에 액세스할 수 있습니다.

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

제한사항

휴대기기는 Home Graph의 일부가 아니므로 홈 스토리지를 사용할 수 없습니다. 웹훅 코드에서 HOME_STORAGE 기기 기능을 사용하여 사용자 기기에서 지원하는 기능에 따라 비즈니스 로직을 분기합니다.

다음과 같이 가정용 저장용량을 사용하도록 선택해야 합니다.

  1. Actions 콘솔에서 배포 > 디렉터리 정보로 이동합니다.
  2. Additional Information(추가 정보) 섹션에서 Home storage(홈 스토리지) 체크박스를 선택합니다.

가족의 데이터 읽기 및 쓰기

홈 스토리지의 값을 업데이트하거나 새 값을 설정하려면 웹훅 호출에서 home 객체의 params 필드에 값을 할당합니다. 다음 예에서는 홈 저장소에서 '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일이 지나면 홈 스토리지 데이터가 완전 삭제됩니다. 홈 그래프 구조와 연결된 기기에서 작업을 호출하면 90일 타이머가 재설정됩니다. Home Graph 구조가 삭제되면 상응하는 홈 스토리지 데이터가 삭제됩니다.

홈 스토리지를 사용하는 작업의 경우 홈 그래프 구조 관리자는 어시스턴트 디렉터리의 작업 페이지에서 관리하는 집의 홈 스토리지를 삭제할 수 있습니다.

  1. 사용자 스토리지를 확인하거나 삭제하려는 작업을 찾아 선택합니다.
  2. 페이지 하단으로 스크롤합니다.
    • 홈 저장소에 저장된 데이터를 삭제하려면 Stop action_name from remembering me를 클릭합니다.

기기 관리자가 구조에서 기기를 연결 해제하면 홈 스토리지도 연결 해제됩니다. 홈 스토리지 데이터는 구조 관리자가 변경하지 않는 한 구조 관리자가 변경되더라도 계속해서 기기와 연결됩니다.

시뮬레이터에서의 가정용 스토리지 데이터

Actions 콘솔의 시뮬레이터를 사용하여 작업을 테스트할 때 홈 저장소에 저장된 데이터는 실제 기기와 약간 다르게 동작합니다. 시뮬레이터는 자체 Home Graph의 일부로 간주되므로 네트워크에 있는 다른 기기에 데이터가 유지되지 않습니다. 또한 확인되지 않은 사용자 시뮬레이션 시뮬레이터 설정이 사용 설정된 경우 홈 저장용량 데이터가 세션 간에 유지되지 않습니다.

샘플 상호작용

다음은 로그인한 사용자가 작업을 처음 호출할 때 발생하는 상호작용의 예입니다.

사용자 쿼리 Hey Google, ExampleAction에 연결해 줘.
어시스턴트 응답 ExampleAction을 가져옵니다.
어시스턴트 응답 ExampleAction은 플레이할 때마다 저장되므로 다른 가족 구성원이 내가 중단한 부분부터 이어서 플레이할 수 있습니다.
ExampleAction 응답 확인된 사용자님, 안녕하세요. 레벨 0입니다. 다음, 재설정, 취소라고 말하세요.
사용자 쿼리 다음.
ExampleAction 응답 레벨 1입니다.
사용자 쿼리 나가기를 탭합니다.

그런 다음 동일한 확인된 사용자가 일정 시간 후 작업으로 돌아오면 다음을 수행합니다.

사용자 쿼리 Hey Google, ExampleAction에 연결해 줘.
어시스턴트 응답 ExampleAction을 가져옵니다.
ExampleAction 응답 확인된 사용자님, 안녕하세요. 레벨 1입니다. 다음, 재설정, 취소라고 말하세요.
사용자 쿼리 다음.
ExampleAction 응답 레벨 2입니다.
사용자 쿼리 나가기를 탭합니다.

다음 날 확인되지 않은 사용자가 Home Graph에 지정된 대로 동일한 가구 내의 다른 기기에서 작업과 상호작용합니다.

사용자 쿼리 Hey Google, ExampleAction에 연결해 줘.
어시스턴트 응답 ExampleAction을 가져옵니다.
어시스턴트 응답 ExampleAction은 플레이할 때마다 저장되므로 다른 가족 구성원이 내가 중단한 부분부터 이어서 플레이할 수 있습니다.
ExampleAction 응답 게스트 사용자님, 안녕하세요. 레벨 2입니다. 다음, 재설정, 취소라고 말하세요.
사용자 쿼리 다음.
ExampleAction 응답 레벨 3입니다.
사용자 쿼리 나가기를 탭합니다.