Sitzungsspeicher

Sie können Parameterwerte für einen bestimmten Nutzer innerhalb einer Unterhaltung in Sitzungsspeicher. Deine Aktion kann diese gespeicherten Werte dann später in Prompts verwenden und Bedingungen und Ihr Webhook-Code kann auf Werte im Sitzungsspeicher für wenn nötig mit.

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

Im Sitzungsspeicher gespeicherte Daten laufen ab, wenn eine Unterhaltung endet.

Daten in Sitzungsspeicher lesen und schreiben

Um den Sitzungsspeicher zu aktualisieren oder einen neuen Wert festzulegen, weisen Sie den Wert dem Feld params des session-Objekts in einem Webhook-Aufruf. Im folgenden Beispiel legt „exampleColor“ fest zu „Rot“ im Sitzungsspeicher:

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

Wenn Sie auf Daten im Sitzungsspeicher zugreifen möchten, weisen Sie sie einer Variablen in einem Webhook zu aufrufen. Im folgenden Beispiel wird ein Wert aus „exampleColor“ abgerufen in Sitzung Speicherplatz:

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, setzen Sie den Wert in einem Webhook-Aufruf auf null. Im folgenden Beispiel wird der Wert von „exampleColor“ gelöscht. im Sitzungsspeicher:

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

In Prompts auf gespeicherte Werte verweisen

Sie können in einer Eingabeaufforderung auf Werte verweisen, die im Sitzungsspeicher gespeichert sind. Um auf die $session.params.PARAMETER_NAME-Syntax, wobei PARAMETER_NAME ist der Name, der im Webhook angegeben wird, wenn der Parameter festgelegt wurde.

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

JSON

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

Auf gespeicherte Werte in Bedingungen verweisen

Sie können unter conditions auch Werte referenzieren, die im Sitzungsspeicher gespeichert sind. Bis auf den Wert verweisen, verwenden Sie session.params.PARAMETER_NAME Syntax, wobei PARAMETER_NAME der im Webhook angegebene Name ist, wenn der Parameter festgelegt wurde.

Beispiel: Sie haben zuvor im Sitzungsspeicher einen Farbwert als exampleColor und Sie möchten ihn mit dem Wert „red“ abgleichen. in einem . In der Bedingung referenzieren Sie den gespeicherten Wert mithilfe von session.params.exampleColor Der Bedingungsausdruck sieht dann so aus:

Bedingungssyntax

session.params.exampleColor == "red"