Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Botframework 显示消息";“连接到客户服务”;如果bot不是';无法在连续3次尝试中回答…dotnet core 3.1…MS Bot Framework_Botframework - Fatal编程技术网

Botframework 显示消息";“连接到客户服务”;如果bot不是';无法在连续3次尝试中回答…dotnet core 3.1…MS Bot Framework

Botframework 显示消息";“连接到客户服务”;如果bot不是';无法在连续3次尝试中回答…dotnet core 3.1…MS Bot Framework,botframework,Botframework,我有一个机器人,如果用户提出的问题不在知识库中,它会显示“未找到答案” 如果机器人连续三次尝试都无法应答,我想显示另一条消息(例如,联系支持台的电话号码123456789) 如下图所示: 如果不确切知道QnA Maker是如何设置的,很难回答这个问题,但@JJ_Wailes建议的是解决方法。您需要跟踪错误答案的数量,然后提供可选的默认消息。为了给自己更多的灵活性,我总是创建自己的默认响应逻辑,而不是依赖QnA Maker。我将做一些假设,假设你已经能够很好地拨打QnA Maker电话,处理用户和

我有一个机器人,如果用户提出的问题不在知识库中,它会显示“未找到答案”

如果机器人连续三次尝试都无法应答,我想显示另一条消息(例如,联系支持台的电话号码123456789)

如下图所示:
如果不确切知道QnA Maker是如何设置的,很难回答这个问题,但@JJ_Wailes建议的是解决方法。您需要跟踪错误答案的数量,然后提供可选的默认消息。为了给自己更多的灵活性,我总是创建自己的默认响应逻辑,而不是依赖QnA Maker。我将做一些假设,假设你已经能够很好地拨打QnA Maker电话,处理用户和会话状态。我不再依赖QnA Maker默认答案,而是检查返回的置信度分数,并为这些情况创建自己的消息活动。为了简单起见,我将忽略提示。下面是我典型的QnA Maker流程示例。不幸的是,我只是在nodejs中开发的,但我认为这应该足够相似,您可以适应dotnet

var最低评分=50;
const conversationData=wait this.dialogState.get(context,{});
//将使用conversationData.qnaFailCount跟踪连续的错误答案
//打第一个电话
var qnaResult=await QnAServiceHelper.queryQnAService(activity.text);
var qnaAnswer=qnaResult[0]。答案;
//应用置信度过滤器
如果(qnaResult[0]。分数>最低分数){
outputActivity=MessageFactory.text(qnaAnswer);
conversationData.qnaFailCount=0;//找到答案时重置计数器
}否则{
//如果置信度低,则递增计数器
conversationData.qnaFailCount+=1;
if(conversationData.qnaFailCount<3){
outputActivity=MessageFactory.text(默认答案);
}否则{
//从3开始,为每个连续的“无应答”发送升级消息
outputActivity=MessageFactory.text(升级);
}
}
等待此.conversationState.saveChanges(上下文);//别忘了保存状态!
返回输出活性;
因此,现在您将为每个未找到的答案递增计数器,并在找到答案时重置计数器。这样,它将继续为第四、第五等查询提供升级表,但没有回答。由于您使用的是对话状态,当用户离开站点并返回时,他们将进行一次新的对话,整个过程将重新开始


请注意,如果您在Microsoft团队中使用此消息,则该消息将被视为一次长对话,因此即使在多天之后,消息也不会重置,只有得到正确的答案。这似乎不是MS团队的用例,但我想提一提。

为什么不在对话状态下保存一个名为“错误答案”的变量,当它达到3时,转移到对话的其他部分?这解决了您的问题吗?