如果我需要同时评估两个不同节点的上下文变量的条件,如何使用jump

时间:2017-07-19 16:57:59

标签: ibm-watson watson-conversation watson-dialog

我有一个父节点,基于用户输入Iam在我的应用程序级别设置上下文变量资格:是或否并传回。对于我的父节点,我有两个子节点条件$ eligibility ==&# 34;是"和$ eligibility ==" no"。一旦用户从父节点验证输入完成并传回上下文变量,那么我需要跳转并查找资格条件。如果是,我需要去一个节点,如果没有那么其他。我怎么办?

enter image description here

我尝试将true添加到节点并将这两个节点添加到此并跳转到true ..但是没有工作..我们如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

@data_henrik提到的是设置上下文值然后根据设置值切换到不同流的好方法。但是当您需要在应用程序的上下文中设置该值之前执行某些逻辑时,它将不是一种合适的方式。

我有这样的要求,所以在完成在父节点执行后在上下文中设置值之后,我们习惯从应用程序发送虚拟文本。之后查看图像和解释。

Dialog

Child Node

我们没有使用Jump,因为我们必须在父节点之后在Conversation服务中进行一些验证才能继续前进。在我们可以在上下文中设置值之前,使用跳转将允许对话移动到下一个节点。

用例流 - 一旦用户输入父节点意图的文本,对于我的情况“#send-mail”意图,我显示父响应并在我的应用程序之后执行一些功能验证并为上下文添加值。现在我们发送一个虚拟文本“valid”,它满足意图“#Valid”,因此移动到流程中的下一个节点。在此节点中,我们检查上下文中的值(现在已经设置)并显示对用户的适当响应。

答案 1 :(得分:0)

您可以在前两个测试节点中设置$ testMe == true和$ testMe == false输出json数据包中的临时输出变量,即输出{“temp”:“true”}或“false”。然后你可以跳转到一组新的节点并测试output.temp值,即output.temp =='true'然后执行某些操作,或者输出.temp =='false'然后执行某些操作。

这个动作的好处是,output.temp变量只有当前会话输入的生命周期。与需要删除/删除的上下文变量不同。