0

我的问题是:如何将用户给定的值附加到实体。用户提供的值是动态的。

Watson 响应会使用用户提供的值覆盖 toppings 变量,如您在所附图像中所见。

 {
   "output": {
   "text": "I got an order to add one or more toppings. 
            Adding <?context.toppings.append('toppings')?>. 
            Toppings to provide: <?entities['toppings']?.toString()?>"
    },
   "context": {
   "toppings": "<? entities['toppings']?.toString()?>"
    }
 }

在此处输入图像描述

4

1 回答 1

1

.append()您可以使用该函数附加到数组。

"toppings": "<? entities['toppings']?.toString()?>"在您的示例中,每次使用实际识别的实体处理此节点时,表达式都会覆盖 toppings 变量@toppings。首先$toppings需要将变量定义为数组,例如:

"context" : { "toppings" : [] }

然后在context对话节点的一部分中,您可以编写:

"context" : { "toppings" : "<?$toppings.append(entities['toppings'].toJsonArray())?>" }

我们的文档中的更多信息:Watson Conversation Doc

编辑:考虑到这一点,为实体和存储它的变量使用相同的名称可能不是一个好主意。:-)

于 2016-11-08T15:29:32.267 回答