Stockage de la session

Vous pouvez stocker les valeurs de paramètre d'un utilisateur spécifique au sein d'une conversation dans stockage par session. Votre action peut ensuite utiliser ces valeurs stockées dans les requêtes. et conditions, et votre code webhook peut accéder aux valeurs du stockage de session la conversation si nécessaire.

Au cours d'une conversation, toutes les données collectées à l'aide de types sont stockées dans stockage. Vous pouvez également interagir avec les données stockées dans le stockage de session à l'aide d'appels webhook. Pour les appels webhook, l'état du stockage de la session est transmis dans un app.handle(). requête et est stocké dans l'objet session.

Les données stockées dans l'espace de stockage de la session expirent à la fin d'une conversation.

Lire et écrire des données dans l'espace de stockage de session

Pour mettre à jour ou définir une nouvelle valeur dans l'espace de stockage de session, attribuez la valeur au paramètre Champ params de l'objet session dans un appel webhook. L'exemple suivant définit "exampleColor" à "rouge" dans le stockage de session:

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

Pour accéder aux données stockées dans le stockage de session, attribuez-les à une variable dans un webhook . L'exemple suivant récupère une valeur de "exampleColor" en session stockage:

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

Pour effacer une valeur enregistrée précédemment, définissez la valeur sur null dans un appel webhook. L'exemple suivant efface la valeur de "exampleColor" dans le stockage de session:

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

Référencer des valeurs stockées dans les requêtes

Vous pouvez référencer des valeurs stockées dans le stockage de session dans une requête. Pour référencer utilisez la syntaxe $session.params.PARAMETER_NAME, où PARAMETER_NAME est le nom donné au webhook lorsque le paramètre a été définie.

Par exemple, vous avez précédemment stocké une valeur de couleur dans le stockage de session en tant que paramètre exampleColor. Pour accéder à cette valeur dans une requête, vous la référencez à l'aide de $session.params.exampleColor:

JSON

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

Référencer des valeurs stockées dans des conditions

Vous pouvez également référencer des valeurs stockées dans le stockage de session dans des conditions. À référencer la valeur, utilisez session.params.PARAMETER_NAMEPARAMETER_NAME est le nom donné dans le webhook quand le paramètre a été défini.

Par exemple, vous avez précédemment stocké une valeur de couleur dans le stockage de session en tant que exampleColor et vous souhaitez l'associer à la valeur "red" dans un . Dans votre condition, vous référencez la valeur stockée session.params.exampleColor Votre expression de condition se présente alors comme suit:

Syntaxe de la condition

session.params.exampleColor == "red"