在Watson Assistant中使用的Webhook详细信息:
webhook变量: $ webhook_menu_parent
webhook值: {"data": "doc":"<MongoDoc Name>","currentPath":<Array>},"method ":"<MethodName","schema":false,"database":"<MongoDBName>","collection":<MongoCollectionName>}
webhook result : [{ "menus": [
{
"type": "Type 1",
"desc": "Description 1",
"isNode": false
},
{
"type": "Type 2",
"desc": "Description 2",
"isNode": false
} ],
"currentPath": ["Path Element 1", "Path Element 2"... ]
}
]
Watson Assistant的结构:
目的:菜单
实体:菜单
欢迎节点:初始化变量$ isNode = False和$ currentPat = []
切换条件:等待回复
常规1节点:触发条件:如果助理识别出#menu或!$ isNode
输出:标注我的webhook,并将结果存储到$ webhook_menu_parent中,并初始化$ Menus = null
切换条件:等待回复
isNode:false节点:触发条件:!$ isNode
输出:通过Webhook $ webhook_menu_parent
的结果,插槽@Menus被填充并存储在上下文变量$ Menus中
上下文变量:将Webhook结果的isNode值分配给上下文变量$ isNode,并将当前菜单附加到$ currentPath,以进行下一次Webhook调用。
切换条件:跳至常规1。
常规2:触发条件:$ isNode
输出:文本“我们已经到达最终节点”
切换条件:等待回复
其他:触发条件:$其他
输出:其他任何短语。
切换条件:等待回复。
流:我想在节点“ General 1”和“ isNode:false”之间进行循环切换,直到$ isNode上下文变量为false。当$ isNode上下文变量变为true时,它应该跳转到节点“ General 2”。
问题:在节点“常规1”的切换条件为“等待答复”之前,它工作正常。但是用户必须在从节点“ General 1”切换到“ isNode:false”之间给出一个空响应。为了解决此问题,如果切换条件从“等待答复”更改为“跳过用户输入并评估子节点”,则循环不起作用。流程从节点“ General” 1转到“ isNode:false”节点,即使上下文变量$ isNode值为false,它也直接跳转到节点“ General 2”而不是“ General 1”。
沃森技能json可在https://github.com/lokeshpawar20/watsonassistantbackup
上找到我已经在互联网上进行了搜索,但无法查明沃森助手这种行为改变的原因。