Sitzungsspeicher

Sie können Parameterwerte für einen bestimmten Nutzer innerhalb einer Unterhaltung im Sitzungsspeicher speichern. Deine Aktion kann diese gespeicherten Werte später in Aufforderungen und Bedingungen verwenden und dein Webhook-Code kann bei Bedarf auf Werte im Sitzungsspeicher für die Unterhaltung zugreifen.

Während einer Unterhaltung werden alle mithilfe von types erfassten Daten im Sitzungsspeicher gespeichert. Sie können auch mithilfe von Webhook-Aufrufen mit Daten im Sitzungsspeicher interagieren. Bei Webhook-Aufrufen wird der Status des Sitzungsspeichers in einer app.handle()-Anfrage übergeben und im Objekt session gespeichert.

Im Sitzungsspeicher gespeicherte Daten laufen ab, wenn eine Unterhaltung beendet wird.

Daten in Sitzungsspeicher lesen und schreiben

Wenn Sie einen Wert im Sitzungsspeicher aktualisieren oder einen neuen Wert festlegen möchten, weisen Sie den Wert in einem Webhook-Aufruf dem Feld params des Objekts session zu. Im folgenden Beispiel wird "exampleColor" im Sitzungsspeicher auf "red" gesetzt:

Node.js

// Assign color to session storage
app.handle('storeColor', conv => {
  let color = 'red';
  conv.session.params.exampleColor = color;
});
    

JSON

{
  "responseJson": {
    "session": {
      "id": "12345678901234567890",
      "params": {
        "exampleColor": "red"
      }
    },
    "prompt": {
      "override": false
    }
  }
}
    

Für den Zugriff auf Daten im Sitzungsspeicher weisen Sie diese einer Variablen in einem Webhook-Aufruf zu. Im folgenden Beispiel wird ein Wert aus "exampleColor" im Sitzungsspeicher abgerufen:

Node.js

// Retrieve color from session storage
app.handle('getStoredColor', conv => {
  let color = conv.session.params.exampleColor;
});
    

JSON

{
  "responseJson": {
    "session": {
      "id": "12345678901234567890",
      "params": {
        "exampleColor": "red"
      }
    },
    "prompt": {
      "override": false
    }
  }
}
    

Wenn Sie einen zuvor gespeicherten Wert löschen möchten, legen Sie den Wert in einem Webhook-Aufruf auf null fest. Im folgenden Beispiel wird der Wert von "exampleColor" im Sitzungsspeicher gelöscht:

Node.js

// Clear color from session storage
app.handle('clearStoredColor', conv => {
  conv.session.params.exampleColor = null;
});
    

JSON

{
  "responseJson": {
    "session": {
      "id": "12345678901234567890",
      "params": {}
    },
    "prompt": {
      "override": false
    }
  }
}
    

Auf gespeicherte Werte in Prompts verweisen

Sie können in einer Eingabeaufforderung auf Werte verweisen, die im Sitzungsspeicher gespeichert sind. Verwenden Sie die Syntax $session.params.PARAMETER_NAME, um auf den Wert zu verweisen. Dabei ist PARAMETER_NAME der Name, der im Webhook angegeben wurde, als der Parameter festgelegt wurde.

Beispiel: Sie haben zuvor einen Farbwert im Sitzungsspeicher als Parameter exampleColor gespeichert. Um in einer Eingabeaufforderung auf diesen Wert zuzugreifen, verweisen Sie mit $session.params.exampleColor auf diesen Wert:

JSON

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

Auf gespeicherte Werte innerhalb von Bedingungen verweisen

Sie können auch unter conditions auf Werte verweisen, die im Sitzungsspeicher gespeichert sind. Verwenden Sie die Syntax session.params.PARAMETER_NAME, um auf den Wert zu verweisen. Dabei ist PARAMETER_NAME der Name, der im Webhook beim Festlegen des Parameters angegeben wurde.

Beispiel: Sie haben zuvor einen Farbwert im Sitzungsspeicher als Parameter exampleColor gespeichert und möchten ihn mit dem Wert „red“ in einer Bedingung abgleichen. In der Bedingung verweisen Sie mit session.params.exampleColor auf den gespeicherten Wert. Ihr Bedingungsausdruck sieht dann so aus:

Bedingungssyntax

session.params.exampleColor == "red"