工作階段儲存

您可以將特定使用者的參數值儲存在對話中 不同的工作階段儲存空間您的動作之後可以在提示中使用這些儲存的值 您的 Webhook 程式碼即可存取工作階段儲存空間中的值 在必要時加入對話

在對話期間,使用 types 收集的資料都會儲存在工作階段中 如果 30 天內讀取資料不到一次 建議使用 Coldline Storage您也可以使用 Webhook 呼叫,與工作階段儲存空間中的資料互動。 如果是 Webhook 呼叫,工作階段儲存空間的狀態會透過 app.handle() 傳遞 並儲存在 session 物件中。

對話結束時,儲存在工作階段儲存空間中的資料就會失效。

讀取資料並將其寫入工作階段儲存空間

如要在工作階段儲存空間中更新或設定新值,請將該值指派給 Webhook 呼叫中 session 物件的 params 欄位。以下範例 設定「exampleColor」變更為「紅色」工作階段儲存空間:

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

在條件中參照已儲存的值

您也可以參照在條件中儲存在工作階段儲存空間中的值。目的地: 參照該值,請使用 session.params.PARAMETER_NAME 語法,其中 PARAMETER_NAME 是 Webhook 中指定的名稱 參數。

例如,您先前在工作階段儲存空間中儲存了色彩值做為 參數 exampleColor,而您想要與值「red」進行比對風格 值。在條件中,您可以使用 session.params.exampleColor。條件運算式如下所示:

條件語法

session.params.exampleColor == "red"