【发布时间】:2019-03-08 06:48:37
【问题描述】:
在开发和测试对话时,IBM Watson Assistant 会识别多个意图并以最高置信度响应一个。有时我希望它响应第二个意图而不是第一个意图,因为它与当前对话上下文更相关。例如,如果对话包含处理转账或支付的节点,在转账场景中,用户可以说执行,这将匹配执行转账和执行支付。因此,我希望 Watson 始终响应当前上下文的执行转账,即使它以更高的可信度识别执行付款。
因此,假设机器人知道当前上下文并会相应地回复,用户会提出一般性问题。
例如,假设我正在开发一个常见问题解答机器人来回答有关忠诚度和储蓄 2 个程序的询问。为简单起见,我假设有 4 个意图
(忠诚度定义 - 包含与忠诚度计划相关的示例) (Loyality-Join - 其中有与如何加入忠诚度计划相关的示例) (Save-Define - 其中有与什么是保存程序相关的示例) (Saving-Join - 有关于如何加入储蓄计划的例子)
因此用户可以通过“告诉我有关忠诚度计划”之类的话语来开始对话。然后他们会问“如何加入”(假设机器人知道该程序,但不提及该程序)。在这种情况下,Watson 将识别 2 个意图(Loyalty-Join、Saving-Join),而 Saving-Join 意图可能具有更高的置信度。
所以我需要截取对话(可能正在创建一个父节点来检查上下文并基于该节点过滤错误的意图)。
我找不到在对话中编写代码来检查上下文和修改意图数组的方法,所以我想询问最佳实践。
【问题讨论】:
标签: ibm-cloud ibm-watson watson-conversation