Przechowywanie w domu

W wywołaniu webhooka możesz przechowywać wartości parametrów w wielu sesjach w tym samym domu (na podstawie Home Graph) w pamięci domowej. Akcja może używać tych zapisanych wartości później w promptach i warunkach, a kod webhooka może w razie potrzeby uzyskiwać dostęp do wartości w pamięci domowej w określonym domu.

Stan pamięci masowej jest przekazywany w żądaniu app.handle() i jest przechowywany w obiekcie home.

Ograniczenia

Domowej pamięci nie można używać na urządzeniach mobilnych, ponieważ nie są one częścią wykresu głównego. W kodzie webhooka użyj funkcji urządzenia HOME_STORAGE, aby rozgałęzić logikę biznesową w zależności od możliwości urządzenia użytkownika.

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

  1. W konsoli Actions kliknij Wdróż > Informacje z katalogu.
  2. W sekcji Dodatkowe informacje zaznacz pole Miejsce na dane w domu.

Odczytywanie i zapisywanie danych w domu

Aby zaktualizować lub ustawić nową wartość w pamięci domowej, przypisz wartość do pola params obiektu home w wywołaniu webhooka. Ten przykład ustawia ustawienie „exampleColor” na „red” w domowej pamięci masowej:

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 wywołaniu webhooka. Ten przykład pobiera wartość z „exampleColor” w pamięci domowej:

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ść na null w wywołaniu webhooka. Ten przykład usuwa wartość „exampleColor” z 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ływanie się do zapisanych wartości w promptach

Wartości zapisane w pamięci domowej możesz znaleźć w prompcie. Aby odwołać się do wartości, użyj składni $home.params.PARAMETER_NAME, gdzie PARAMETER_NAME to nazwa nadana webhookowi podczas ustawiania parametru.

Na przykład wcześniej zapisałeś(-aś) wartość koloru w pamięci domowej jako parametr exampleColor. Aby uzyskać dostęp do tej wartości w prompcie, odwołuj się do niej za pomocą funkcji $home.params.exampleColor:

JSON

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

Utwórz odwołanie do zapisanych wartości zgodnie z warunkami

Możesz też odwoływać się do wartości przechowywanych w domowej pamięci masowej w conditions. Aby odwołać się do wartości, użyj składni home.params.PARAMETER_NAME, gdzie PARAMETER_NAME to nazwa nadana webhookowi podczas ustawiania parametru.

Na przykład w przechowywaniu urządzeń domowych jako parametr exampleColor była przechowywana wartość koloru, ale chcesz dopasować ją do wartości „red” (czerwony) w przypadku warunku. W warunku możesz się odwoływać do zapisanej wartości za pomocą funkcji home.params.exampleColor. Wyrażenie warunku będzie wtedy wyglądać tak:

Składnia warunku

home.params.exampleColor == "red"
    

Data wygaśnięcia danych w domu

Dane w pamięci domowej są czyszczone po 90 kolejnych dniach akcji, która nie jest wywoływana. Wywołanie działania na dowolnym urządzeniu powiązanym z strukturą Home Graph resetuje 90-dniowy minutnik. Jeśli struktura Home Graph zostanie usunięta, powiązane z nią dane dotyczące miejsca na dane zostaną wyczyszczone.

W przypadku akcji, które korzystają z pamięci domowej, menedżerowie struktury Home Graph mogą wyczyścić miejsce na dane w domach, którymi zarządzają na stronie akcji w katalogu Asystenta:

  1. Znajdź i wybierz działanie, dla którego chcesz wyświetlić lub zwolnić miejsce na dane użytkownika.
  2. Przewiń stronę w dół:
    • Aby usunąć dane przechowywane w domu, kliknij Wyłącz zapamiętywanie mnie przez użytkownika action_name.

Gdy menedżer urządzenia odłączy je od domu, pamięć urządzenia też zostanie odłączona. Dane w domu są nadal powiązane z urządzeniem, nawet jeśli zmieni się menedżer domu, chyba że menedżer je wyczyści.

Dane dotyczące miejsca na dane w domu w symulatorze

Gdy testujesz akcję za pomocą symulatora w konsoli Actions, dane przechowywane w domowej pamięci masowej działają nieco inaczej niż na urządzeniu fizycznym. Symulator jest uważany za część własnego Home Graph, więc dane nie są przechowywane na innych urządzeniach w Twojej sieci. Poza tym dane przechowywane w miejscu na dane nie są zachowywane pomiędzy sesjami, gdy włączone jest ustawienie symulatora Symuluj niezweryfikowanego użytkownika.

Przykładowa interakcja

Oto przykładowa interakcja zalogowanego użytkownika przy pierwszym wywołaniu akcji:

Zapytanie użytkownika OK Google, przejdź do Przykładowego działania.
Odpowiedź Asystenta Pobieram element ExampleAction.
Odpowiedź Asystenta Pamiętaj, że funkcja ExampleAction jest zapisywana za każdym razem, gdy w nią grasz, 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 Zamknij.

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

Zapytanie użytkownika OK Google, przejdź do Przykładowego działania.
Odpowiedź Asystenta Pobieram element 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 Zamknij.

Następnego dnia niezweryfikowany użytkownik wchodzi w interakcję z działaniem na innym urządzeniu w tym samym domu (zgodnie z ustawieniami Home Graph).

Zapytanie użytkownika OK Google, przejdź do Przykładowego działania.
Odpowiedź Asystenta Pobieram element ExampleAction.
Odpowiedź Asystenta Pamiętaj, że funkcja ExampleAction jest zapisywana za każdym razem, gdy w nią grasz, 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 Zamknij.