How do I add an action to watson conversation response?

北战南征 提交于 2019-11-27 05:37:09

You can use context variables or action variables for that. How to use context variables? Add in your Advance response the "context" and the values, check my example.

I've used the conversation simple for that.

In your Watson Developer Cloud - IBM Bluemix - Watson Conversation, add in the Advanced response this JSON example, Assuming it is in this conversation node that your application will do something:

{
  "context": {
    "verified": true;
  },
  "output": {
    "text": {
      "values": [
        "Please wait and I'll verified your request."
      ],
      "selection_policy": "sequential"
    }
  }
}

Example (app.js):

function updateMessage(input, data, req, res) {
  if (data.context.verified === true){
    searchRequest(data, req, res);
    } else if (data.output && data.output.text) {
    return res.json(data);
    }
    return data;
}

You can use the data for sending something within conversation flow.

function searchRequest(data, req, res){
    // something to do and return value
    var sendRequest = "Thanks for wait, the request is" + valueRequest;
    data.output.text[0] = sendRequest;
    return data;
}

EDIT:

You can add one JSON object like "action", and your code will recognize this variable, with the same example that @Mikko said. And you can check this with:

data.output.action === 'close'

You need to be careful with context variables as your next dialog node may or may not update them. Another option is to add a custom variable in the output. This is the solution used in conversation-discovery samples available in the GitHub.

  "output": {
    "text": {
      "values": [
        "Goodbye..."
      ],
      "selection_policy": "sequential"
    },
    "action": "close"
  }

Please note that this will cause a warning when closing the JSON editor.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!