Dialogflow CX - 如何清除参数

Dialogflow CX - How to clear parameter

https://i.stack.imgur.com/uq9Yv.png

https://i.stack.imgur.com/jaPaz.png

https://i.stack.imgur.com/SHIuS.png

当我说'no'时,如何获取'number'参数清除并输出提示符'say a number'?

要清除表单填写会话中的参数,您必须在转换回表单填写页面之前将会话中的参数值设置为空。

有两种方法可以在会话中将参数值设置为空:

  1. 在某个页面的intent/condition路由的fulfillment参数预设中添加需要清零的参数

    一个。在您的情况下,您可以在“确认号码”页面的“否”意向路由的履行参数预设中添加具有空值的“号码”参数。

    b.当“Confirm Number”页面的“No”intent route被触发时,session中的“number”参数会被清除,并跳转回“Insert Number”页面再次询问号码。

  2. 通过 fulfillment webhooks 将参数值设置为 null。下面是一个示例代码供参考:

     app.post("/clearnumber", async (request, response) => {
       let params = request.body.sessionInfo.parameters; //get the current parameters in the session
       let message = "\n\n number parameter has been cleared... ";
       console.log("request body:" + request.body);
       console.log(".....number........... :" + params.number);
       params.number = null; // setting the number parameter to null
       console.log("..after.resetting.number........... :" + params.number);
       request.body.sessionInfo.parameters = params; //add the parameter changes in the sessionInfo that will be sent back to the agent
       let fulfillmentResponse = {
         fulfillmentResponse: {
           messages: [{
             text: {
               text: []
             }
           }]
         },
         sessionInfo: request.body.sessionInfo
    
       };         fulfillmentResponse.fulfillmentResponse.messages[0].text.text.push(message);
       response.json(fulfillmentResponse);
     });
    

〃 正如您在下面的屏幕截图中看到的,结果与在控制台中使用参数预设相同。