1)用户何时聊天,系统给出相同的答案(在行中点击相同的意图,即 3 次),此时我们需要触发一个对话,询问“对不起,我不知道你想要的答案联系客服?
2)当连续三次低置信度示例对话置信度小于30%时触发对话的相同场景。
请在下面发表评论以进行澄清
1)用户何时聊天,系统给出相同的答案(在行中点击相同的意图,即 3 次),此时我们需要触发一个对话,询问“对不起,我不知道你想要的答案联系客服?
2)当连续三次低置信度示例对话置信度小于30%时触发对话的相同场景。
请在下面发表评论以进行澄清
这在 Watson Assistant 中很容易,您可以在一个节点中完成所有操作。
首先在欢迎节点上方创建一个节点,像这样。
为什么要这样做?它将允许节点始终执行,并且由于它链接到欢迎节点,因此如果它们移动,它将不会受到欢迎节点下方的节点的影响。
单击节点,然后单击 cog 将其设置为“多响应节点”。然后填写如下:
1)将此设置为input.text == ""
。这可以防止在您进行第一次连接时触发节点。没有这个你会得到一个错误。
2)单击齿轮并设置以下内容。
这将设置最后一个意图,并重置计数器。
3)单击保存,然后单击第二行的齿轮。填写如下。
如果最后一个意图与当前意图匹配,这将增加计数器。
如果第三个意图被命中,第一行将触发。
我只使用文本,但您更有可能放置一个上下文变量或关键字来告诉您的应用程序层重定向到人类。
我已经上传了一个示例工作区。
您可以跟踪在对话节点中将事物作为上下文命中的次数。但以上内容是正确的,因为您的客户端应用程序必须向实时代理进行切换,或者无论如何建立连接。您也可以只显示电话号码或链接作为您对对话框的回复,以保持简单(但对最终用户的帮助较小)
这可以在 Watson Assistant 工具之外完成。我总是推荐使用这样的 Watson Assistant API 句柄项的“包装应用程序”。您需要计算连续触发特定意图的次数。您还可以评估低置信度,并在那里进行计数。
下面是来自 Node 示例的代码片段,以确保信心:
function updateMessage(input, response) {
var responseText = null;
if (!response.output) {
response.output = {};
} else {
return response;
}
if (response.intents && response.intents[0]) {
var intent = response.intents[0];
// Depending on the confidence of the response the app can return different messages.
// The confidence will vary depending on how well the system is trained. The service will always try to assign
// a class/intent to the input. If the confidence is low, then it suggests the service is unsure of the
// user's intent . In these cases it is usually best to return a disambiguation message
// ('I did not understand your intent, please rephrase your question', etc..)
if (intent.confidence >= 0.75) {
responseText = 'I understood your intent was ' + intent.intent;
} else if (intent.confidence >= 0.5) {
responseText = 'I think your intent was ' + intent.intent;
} else {
responseText = 'I did not understand your intent';
}
}
response.output.text = responseText;
return response;
}
调整您认为合适的数字。
这个特定实现的其余部分在这里:https ://github.com/watson-developer-cloud/assistant-simple