Spazio di archiviazione domestico

In una chiamata webhook, puoi memorizzare i valori dei parametri in più sessioni nella stessa abitazione (in base a Home Graph) nello spazio di archiviazione della casa. L'Azione può quindi utilizzare i valori archiviati in un secondo momento nei prompt e nelle condizioni e, se necessario, il codice webhook può accedere ai valori nello spazio di archiviazione dell'abitazione per un nucleo familiare specifico.

Lo stato dell'archiviazione domestica viene passato in una richiesta app.handle() e archiviato nell'oggetto home.

Limitazioni

Lo spazio di archiviazione di Google Home non può essere utilizzato con i dispositivi mobili, in quanto non fanno parte di Google Home. Nel codice webhook, utilizza la funzionalità del dispositivo HOME_STORAGE per diramare la logica di business in base alle capacità del dispositivo dell'utente.

Devi attivare l'uso dello spazio di archiviazione domestico:

  1. Nella console di Actions, vai a Deployment > Informazioni sulla directory.
  2. Nella sezione Informazioni aggiuntive, seleziona la casella Archiviazione di casa.

Leggere e scrivere dati in un nucleo familiare

Per aggiornare o impostare un nuovo valore nello spazio di archiviazione Home, assegna il valore al campo params dell'oggetto home in una chiamata webhook. L'esempio seguente imposta "exampleColor" su "red" nello spazio di archiviazione domestico:

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

Per accedere ai dati archiviati nello spazio di archiviazione di Google Home, assegnali a una variabile in una chiamata webhook. L'esempio seguente recupera un valore da "exampleColor" nello spazio di archiviazione della home page:

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

Per cancellare un valore salvato in precedenza, impostalo su null in una chiamata webhook. L'esempio seguente cancella il valore di "exampleColor" nello spazio di archiviazione domestico:

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

Fare riferimento ai valori archiviati all'interno dei prompt

Puoi fare riferimento ai valori memorizzati nello spazio di archiviazione di Google Home in un messaggio. Per fare riferimento al valore, utilizza la sintassi $home.params.PARAMETER_NAME, dove PARAMETER_NAME è il nome assegnato nel webhook quando è stato impostato il parametro.

Ad esempio, hai precedentemente archiviato un valore di colore nello spazio di archiviazione domestico come parametro exampleColor. Per accedere a quel valore in un prompt, devi fare riferimento a tale valore utilizzando $home.params.exampleColor:

JSON

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

Fare riferimento ai valori archiviati nelle condizioni

Puoi anche fare riferimento ai valori memorizzati nello spazio di archiviazione domestico in conditions. Per fare riferimento al valore, utilizza la sintassi home.params.PARAMETER_NAME, dove PARAMETER_NAME è il nome assegnato nel webhook quando è stato impostato il parametro.

Ad esempio, hai precedentemente archiviato un valore di colore nello spazio di archiviazione della casa come parametro exampleColor e vuoi che corrisponda al valore "rosso" in una condizione. Nella condizione, fai riferimento al valore archiviato utilizzando home.params.exampleColor. L'espressione della condizione si presenta così:

Sintassi delle condizioni

home.params.exampleColor == "red"
    

Scadenza dei dati di archiviazione della casa

I dati dello spazio di archiviazione in casa vengono cancellati dopo 90 giorni consecutivi in cui l'Azione non è stata richiamata. Richiamare l'Azione su qualsiasi dispositivo associato alla struttura Home Graph reimposta il timer di 90 giorni. Se una struttura Home Graph viene eliminata, i dati dello spazio di archiviazione della casa corrispondente vengono cancellati.

Per le Azioni che utilizzano lo spazio di archiviazione di casa, i gestori della struttura Home Graph possono svuotare lo spazio di archiviazione di Home per le strutture che gestiscono dalla pagina Azione nella directory dell'assistente:

  1. Trova e seleziona l'Azione per cui vuoi visualizzare o per cui vuoi cancellare lo spazio di archiviazione dell'utente.
  2. Scorri fino in fondo alla pagina:
    • Per rimuovere i dati archiviati nello spazio di archiviazione di Google Home, fai clic su Interrompi la memorizzazione delle informazioni personali da parte di action_name.

Quando il gestore di un dispositivo lo dissocia dalla struttura, anche lo spazio di archiviazione della casa si dissocia. I dati di archiviazione della casa continuano a essere associati a un dispositivo anche se il gestore della struttura cambia, a meno che il gestore della struttura non li cancelli.

Dati di archiviazione della casa nel simulatore

Quando testi l'Azione con il simulatore nella console Actions, i dati archiviati nello spazio di archiviazione in casa si comportano in modo leggermente diverso rispetto a un dispositivo fisico. Il simulatore è considerato parte di Home Graph a sé stante, pertanto i dati non sono visibili ad altri dispositivi che potresti avere nella tua rete. Inoltre, i dati di archiviazione della casa non vengono mantenuti tra una sessione e l'altra quando è attivata l'impostazione del simulatore Simula utente non verificato.

Esempio di interazione

Ecco un esempio di interazione di un utente che ha eseguito l'accesso alla prima chiamata dell'azione:

User query Hey Google, parla ad ExampleAction.
Risposta dell'assistente Recupero di ExampleAction.
Risposta dell'assistente Tieni presente che ExampleAction viene salvato ogni volta che lo usi, in modo che gli altri membri del tuo nucleo familiare possano riprendere da dove avevi interrotto.
Risposta ExampleAction Ciao utente verificato. Sei al livello 0. Di' successivo, reimposta o annulla.
User query Avanti.
Risposta ExampleAction Sei al livello 1.
User query Abbandona.

Quindi, quando lo stesso utente verificato torna all'Azione dopo un certo periodo di tempo:

User query Hey Google, parla ad ExampleAction.
Risposta dell'assistente Recupero di ExampleAction.
Risposta ExampleAction Ciao utente verificato. Sei al livello 1. Di' successivo, reimposta o annulla.
User query Avanti.
Risposta ExampleAction Sei al livello 2.
User query Abbandona.

Il giorno successivo, un utente non verificato interagisce con l'Azione su un altro dispositivo all'interno dello stesso nucleo familiare (come specificato in Home Graph).

User query Hey Google, parla ad ExampleAction.
Risposta dell'assistente Recupero di ExampleAction.
Risposta dell'assistente Tieni presente che ExampleAction viene salvato ogni volta che lo usi, in modo che gli altri membri del tuo nucleo familiare possano riprendere da dove avevi interrotto.
Risposta ExampleAction Ciao utente ospite. Sei al livello 2. Di' successivo, reimposta o annulla.
User query Avanti.
Risposta ExampleAction Sei al livello 3.
User query Abbandona.