セッションのストレージ

セッション ストレージ内の会話内の特定のユーザーのパラメータ値を格納できます。アクションは、保存された値を後でプロンプトや条件で使用できます。また、Webhook コードは、必要に応じて会話用のセッション ストレージの値にアクセスできます。

会話中、タイプを使用して収集されたデータは、セッション ストレージに保存されます。Webhook 呼び出しを使用して、セッション ストレージ内のデータを操作することもできます。Webhook 呼び出しの場合、セッション ストレージの状態は app.handle() リクエストで渡され、session オブジェクトに保存されます。

セッション ストレージに保存されているデータは、会話が終了すると期限切れになります。

セッション ストレージへのデータの読み取りと書き込み

セッション ストレージの値を更新または設定するには、Webhook 呼び出しの session オブジェクトの params フィールドに値を割り当てます。次の例では、セッション ストレージで「exampleColor」を「red」に設定しています。

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

セッション ストレージに保存されているデータにアクセスするには、Webhook 呼び出しで変数にそのデータを代入します。次の例では、セッション ストレージの「exampleColor」から値を取得しています。

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

以前に保存した値を消去するには、Webhook 呼び出しで値を null に設定します。次の例では、セッション ストレージの「exampleColor」の値を消去します。

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

プロンプト内で保存済み値を参照する

セッション ストレージに保存されている値は、プロンプトで参照できます。値を参照するには、$session.params.PARAMETER_NAME 構文を使用します。ここで、PARAMETER_NAME はパラメータの設定時に Webhook で指定される名前です。

たとえば、以前にパラメータ exampleColor として色値をセッション ストレージに保存していました。プロンプトでその値にアクセスするには、$session.params.exampleColor を使用してその値を参照します。

JSON

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

条件内で保存された値を参照する

セッション ストレージに保存されている値をconditionsで参照することもできます。値を参照するには、session.params.PARAMETER_NAME 構文を使用します。ここで、PARAMETER_NAME はパラメータの設定時に Webhook で指定される名前です。

たとえば、以前にパラメータ exampleColor として色値をセッション ストレージに保存しており、それを条件で値「red」と照合する場合です。条件では、session.params.exampleColor を使用して保存済み値を参照します。条件式は次のようになります。

条件の構文

session.params.exampleColor == "red"