Przechowywanie w domu

W wywołaniu webhooka możesz przechowywać wartości parametrów z wielu sesji w w tym samym gospodarstwie domowym (na podstawie Home Graph) miejsca na dane w tym samym domu. Akcja może użyj tych zapisanych wartości później w promptach i warunkach, W razie potrzeby kod może uzyskać dostęp do wartości w pamięci domowej dla konkretnego gospodarstwa domowego.

Stan przechowywania danych w domu jest przekazywany w żądaniu app.handle() i zachowywany w obiekcie home.

Ograniczenia

Domowego miejsca na dane nie można używać na urządzeniach mobilnych, ponieważ nie są one częścią domu Wykres. W kodzie webhooka użyj funkcji urządzenia HOME_STORAGE logikę biznesową zgodnie z funkcjami urządzenia użytkownika

Musisz wyrazić zgodę na korzystanie z pamięci domowej:

  1. W Konsoli Actions kliknij Deploy > (Wdróż >) Informacje w katalogu.
  2. W sekcji Dodatkowe informacje zaznacz pole Strona główna miejsca na dane.
.

Odczyt i zapis danych w gospodarstwie domowym

Aby zaktualizować lub ustawić nową wartość pamięci domowej, przypisz ją do funkcji params obiektu home w wywołaniu webhooka. Przykład poniżej ustawia „exampleColor” na „czerwony” w pamięci domowej:

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

Aby uzyskać dostęp do danych przechowywanych w pamięci domowej, przypisz je do zmiennej w webhooku . Ten przykład pobiera wartość z atrybutu „exampleColor” w domu pamięć masowa:

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

Aby usunąć wcześniej zapisaną wartość, ustaw wartość w wywołaniu webhooka na null. Ten przykład usuwa wartość „exampleColor” w pamięci domowej:

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

Odwoływać się do przechowywanych wartości w promptach

Wartości zapisane w pamięci domowej możesz odwoływać się w prompcie do wartości. Do odwołania jako wartość, użyj funkcji $home.params.PARAMETER_NAME składni, gdzie PARAMETER_NAME to nazwa podana w kluczu webhooka, gdy parametr został ustawiony.

Na przykład: wartość koloru została wcześniej zapisana w pamięci domowej jako exampleColor. Aby uzyskać dostęp do tej wartości w prompcie, musisz odwoływać się do niej: używając funkcji $home.params.exampleColor:

JSON

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

Odwoływanie się do przechowywanych wartości w warunkach

Możesz też odwoływać się do wartości przechowywanych w pamięci domowej w sekcji warunki. Do odwołuje się do wartości, użyj funkcji home.params.PARAMETER_NAME składni, gdzie PARAMETER_NAME to nazwa podana w kluczu webhooka, gdy parametr został ustawiony.

Na przykład: wartość koloru została wcześniej zapisana w pamięci domowej jako exampleColor i chcesz dopasować go do wartości „red” w . W warunku odwołujesz się do wartości przedpłaconej za pomocą funkcji home.params.exampleColor Twoje wyrażenie warunku wygląda tak: to:

Składnia warunku

home.params.exampleColor == "red"
    

Wygaśnięcie danych dotyczących miejsca na dane w domu

Dane w domu zostaną wyczyszczone, jeśli akcja nie będzie wykorzystywana przez 90 kolejnych dni . Wywołuję działanie na dowolnym urządzeniu powiązanym z Home Graph resetuje 90-dniowy minutnik. Po usunięciu struktury Home Graph dane z odpowiedniej pamięci domowej zostaną wyczyszczone.

W przypadku działań, które wykorzystują miejsce na dane w domu, menedżerowie domu Home Graph mogą wyczyścić dane o domu miejsce na dane w strukturach, którymi zarządzają na stronie akcji w katalogu Asystenta:

  1. Znajdź i wybierz działanie, dla którego chcesz wyświetlić lub wyczyścić pamięć użytkownika.
  2. Przewiń do dołu strony:
    • Aby usunąć dane przechowywane w domu, kliknij Zatrzymaj action_name. nie będą mnie pamiętać.
.

Gdy menedżer urządzenia odłączy je od domu, domowa pamięć masowa i usunięto powiązanie. Dane dotyczące miejsca na dane w domu nadal są powiązane z urządzeniem nawet jeśli zarządca domu się zmieni, chyba że menedżer domu go anuluje.

Dane dotyczące miejsca na dane w domu w symulatorze

Podczas testowania akcji za pomocą symulatora w Konsoli Actions dane przechowywane w domowej pamięci masowej działają nieco inaczej niż na fizycznej urządzenia. Symulator jest traktowany jak osobny wykres na stronie głównej, więc dane nie na innych urządzeniach w sieci. Dodatkowo strona główna dane pamięci masowej nie są zachowywane między sesjami, gdy funkcja Symuluj niezweryfikowane użytkownika.

Przykładowa interakcja

Oto przykładowa interakcja zalogowanego użytkownika podczas pierwszego wywołania funkcji Akcja:

Zapytanie użytkownika OK Google, porozmawiaj z usługą ExampleAction.
Odpowiedź Asystenta Pobieram ExampleAction.
Odpowiedź Asystenta Przykładowe działanie jest zapisywane przy każdym uruchomieniu, więc inne osoby w domu mogą zacząć od tego samego miejsca.
Przykładowa odpowiedź Dzień dobry, Jesteś na poziomie 0. Powiedz Dalej, Zresetuj lub Anuluj.
Zapytanie użytkownika Dalej.
Przykładowa odpowiedź Jesteś na poziomie 1.
Zapytanie użytkownika Wyjdź.

Następnie, gdy ten sam zweryfikowany użytkownik powróci do działania po pewnym czasie:

Zapytanie użytkownika OK Google, porozmawiaj z usługą ExampleAction.
Odpowiedź Asystenta Pobieram ExampleAction.
Przykładowa odpowiedź Dzień dobry, Jesteś na poziomie 1. Powiedz Dalej, Zresetuj lub Anuluj.
Zapytanie użytkownika Dalej.
Przykładowa odpowiedź Jesteś na poziomie 2.
Zapytanie użytkownika Wyjdź.

Następnego dnia niezweryfikowany użytkownik wchodzi w interakcję z działaniem na innym urządzeniu. w tym samym gospodarstwie domowym (zgodnie z informacjami na wykresie głównym).

Zapytanie użytkownika OK Google, porozmawiaj z usługą ExampleAction.
Odpowiedź Asystenta Pobieram ExampleAction.
Odpowiedź Asystenta Przykładowe działanie jest zapisywane przy każdym uruchomieniu, więc inne osoby w domu mogą zacząć od tego samego miejsca.
Przykładowa odpowiedź Dzień dobry, Jesteś na poziomie 2. Powiedz Dalej, Zresetuj lub Anuluj.
Zapytanie użytkownika Dalej.
Przykładowa odpowiedź Jesteś na poziomie 3.
Zapytanie użytkownika Wyjdź.