【问题标题】:IBM Watson Assistant: How to set a 'jump to' target node dynamically (i.e. using context variables)IBM Watson Assistant:如何动态设置“跳转到”目标节点(即使用上下文变量)
【发布时间】:2019-10-01 08:06:58
【问题描述】:

我想从一个对话节点跳转到一个其 ID 存储在上下文变量中的节点。

我正在尝试解决一个与题外话有关的问题,此处已对此进行了描述:

Conditionally return from digression in watson assistant

尤其是这张图表将问题可视化:

在我看来,A.H. 提出了一个非常合理且相关的问题,但没有得到可行的答案。

据我所知,题外话设置无法解决问题。根级节点(由匹配意图 #Want_to_speak_to_someone 触发)设置为“离题后返回”,或者不是。

如果此题外话节点的题外话设置设置为“返回”,它将始终返回 - 无论在此题外话的对话流程中进一步向下发生什么。即使用户确认他想和一个人说话(即他不想返回),对话也会返回到离题开始的节点。

当我从“是”节点(用户确认他想与某人交谈)跳到任何其他节点时,甚至会发生这种情况。一旦分支(或用户跳转到的分支)结束,对话框就会返回到离题开始的节点。

如果此离题节点的离题设置设置为“不返回”,则无法返回 - 即使用户决定不与某人交谈并选择返回他所在的位置。

A.H. 和我想要的是,用户可以脱离对话流程,仍然可以决定是否要返回。我认为这是对话的一个非常自然和重要的特征。人们喜欢改变他们的决定,或者他们甚至可能无意中偏离了给定的对话流程。

Akaykay 建议有两个不同的节点——一个允许返回的“是节点”和一个不允许返回的“无节点”。但这不起作用,因为在此之前我必须有另一个节点要求用户确认 - 并且这个“确认节点”必须设置为“返回”或“不返回”(产生上述问题)。

出于这个原因,我试图找出一个解决方法:我将对话离题的对话节点 ID 存储在上下文变量中。

这是一个上下文变量


"context": {
        "last_node": "<? output.nodes_visited [0]?>",
        ...
      },

在允许离题的对话流的每个节点中更新。

在示例中,如果用户想要返回,我可以跳回 $last_node,如果用户想要与人交谈,我可以跳转到另一个(固定)节点 - “离题节点”的离题设置会不干扰,可以设置为“不返回”。

然后我尝试在我的技能的 json 文件中编辑相应的节点(从中返回 $last_node):

"next_step": {
        "behavior": "jump_to",
        "selector": "user_input",
        "dialog_node": "$last_node"
      },

但是当我再次重新导入技能 json 文件时,我收到以下错误消息:

我可以使用任何一种解决方案——一种使用离题设置,或者一种允许动态设置“跳转到”目标节点。我非常感谢任何帮助 - 谢谢!

【问题讨论】:

    标签: ibm-cloud ibm-watson watson-assistant


    【解决方案1】:

    如果您想阻止 Watson Assistent 从离题返回,只需在您不希望 Watson Assistant 从离题返回的节点中调用 &lt;? clearDialogStack() ?&gt; 函数即可。

    在您的图表中,您可以在节点“Ok,click here”的输出文本中写入"Ok, click here. &lt;?clearDialogStack()?&gt;"。这应该可以解决问题。

    在本节的文档中:https://cloud.ibm.com/docs/services/assistant?topic=assistant-dialog-runtime#dialog-runtime-digressions

    另请注意,目前无法使用 Watson Assistant 创建动态 goto。您唯一能做的就是创建一个对话节点,其中所有需要的 goto 都以它下面的东西为条件,然后您将转到该节点。手动创建它很困难,但它可以自动生成。欲了解更多 WA 的魔力,请查看此项目:

    https://github.com/IBM/watson-assistant-workbench

    完全不用UI,也可以用WA开发聊天机器人。

    【讨论】:

    • 文档可能很难找到 - 让我知道您会将这些信息移到哪里以获得更好的可见性。
    • 嗨,Michal,非常感谢您的回答!对不起:一切都在那里。我至少看了三遍这份文件并没有抓住它。有时你看不到所有树木的木材......
    • 就此而言:我不认为这些信息必须更加突出。但是使用图形对话框工具创建动态跳转或跳转的可能性肯定会很好!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多