Ibm cloud Bluemix对话,推进对话

Ibm cloud Bluemix对话,推进对话,ibm-cloud,ibm-watson,watson-conversation,Ibm Cloud,Ibm Watson,Watson Conversation,我定义了两个对话节点。第一个在对话开始时触发,询问用户的姓名。第二个将input.text中的用户名存储在上下文变量中,并询问用户是否希望进行简短调查或做其他事情。第二个永远不会执行。为了推进对话,第二个按钮上的触发器应该是什么?目前还没有设定意图或条件。基本上,我只想遵循一串珍珠的模式,每个问题都会被问到,并让用户选择退出一些问题。实现这一点的主要方法有两种。我推荐的方法是为每种可能的方式创建一个意图。例如,您可以创建一个名为#肯定的、值为“是”、“是”、“确定”、“确定”等的意图。您所要做的

我定义了两个对话节点。第一个在对话开始时触发,询问用户的姓名。第二个将input.text中的用户名存储在上下文变量中,并询问用户是否希望进行简短调查或做其他事情。第二个永远不会执行。为了推进对话,第二个按钮上的触发器应该是什么?目前还没有设定意图或条件。基本上,我只想遵循一串珍珠的模式,每个问题都会被问到,并让用户选择退出一些问题。

实现这一点的主要方法有两种。我推荐的方法是为每种可能的方式创建一个意图。例如,您可以创建一个名为
#肯定的
、值为“是”、“是”、“确定”、“确定”等的意图。您所要做的就是创建意图,然后在条件字段中使用它

但您也可以使用
input.text
直接检查用户的输入。例如,可以使用
input.text.toLowerCase()==“yes”
作为条件。请记住,只有在您控制输入并且只允许几个可能的值时,才应使用此选项。如果没有,使用意图,让Watson对话为您处理输入解析

Watson Conversation提供的另一个非常酷的功能可以让您受益,它是一个节点,其条件类似于
intents[0]。confidence<0.6
,响应类似于“对不起,我没有得到那个”。通过这种方式,您可以确保您的流只会触发对意图具有高度信心的条件


希望有帮助

您可以使用
跳转到
功能将系统路由到任意对话框节点-这对于创建定向对话框非常有用。因此,无论何时您想要继续下一个问题(用户回答了上一个问题),您都可以使用“从处理上一个问题的答案的节点跳到”向用户询问另一个问题(跳到下一个对话框节点的主体部分,询问新问题)


现在,对于“getname”用例,您希望第二个节点从挂起的对话开始节点的用户输入中收集名称。如果对话遇到具有子节点的节点,则下一轮对话的处理将从该对话节点的第一个子节点开始-这样,上下文对话将在对话中定义。

Bluemix对话可以被视为状态机。每个转换都在工具中绘制,但每个节点只能由条件触发。因此,如果您在一个节点上询问一个问题,并且返回的答案不会触发其中一个子节点,则状态不会转换为子节点。输入节点的答案由Watson处理,Watson提供“意图”,这基本上是他刚刚分析的句子中的关键词。因此,推进对话的一种方法是使用#前缀将命名的“意图”与子节点中的触发器进行匹配。另一种方法是使用@prefex匹配命名的“实体”,尽管Watson如何构建实体还不太清楚。第三种方法是使用$prefix和简单的条件运算符(如==)匹配上下文变量。上下文变量完全由开发人员管理。允许在每个节点上设置一个上下文变量。然后可以使用它来触发子节点。这似乎是管理我想要实现的对话类型的一个好方法。第四种方法是使用前一个父节点的输入值以及简单的条件运算符

如果你只是想触发它。如果你的答案对你有用,你可以接受自己的答案。