沃森的谈话背景

时间:2017-05-01 16:58:28

标签: watson-conversation watson-dialog

我目前正在使用watson chatbot对话应用程序。我遇到了一个情况,我必须刷新上下文,只是在某个阶段取决于用户输入,但我无法实现这一点。

I tried setting the context = {}, if the user input isn't in the Array, but it seems to check the context at every stage of the Application. 

if(context.city !== array[i]['city']){
        context = {};
 }

what i am asking the user is to input a list of cities, which is in an Array. If the user inputs a location that isn't in the Array first, it let's the user know that it isn't in the Array. If the user inputs a city that is not in the Array after inputing a city that is already in the array, it is returning the last context. 

for example,

City = Boston.
You just input Boston, price is 20.
Then if i do City = Atlanta(Bearing in mind Atlanta is not in the Array)
it does city is Atlanta, price is 20. 

Any idea how to fix this, on any steps i can follow to stop this from happening?

2 个答案:

答案 0 :(得分:1)

  for(var i = 0; i < array.length; i++){
  if (context.city !== array[i]['city']){
    if(inputBox.value ===  context.city)
    {
    context = latestResponse.context;
    context.rate = rate;
    context.currency = currency;
    }
    else
    {
      context.city = "";
      context.rate = "";
      context.currency = "";
    }
  }
}

对于现在或将来可能遇到同样问题的其他人,

这就是为我解决的问题。所需的信息是在一个数组中,所以我循环它,并检查context.city!=数组。

答案 1 :(得分:0)

您可以在应用程序或高级编辑器中将context.city设置为空字符串或null enter image description here  然后在你的应用中修复基于

的逻辑