我正在使用Wit.ai
我的聊天机器人。问题是我的机器人总是试图回答一些问题。只有当我的机器人真正理解被问到的内容时,我才会回答它。我知道这是可能的,但如果我有一个回复很少的机器人,它似乎总是选择其中一个回复,即使它被问到一些完全不同的东西。
我想可以让它回复类似“对不起。我不知道你在问什么。我可以帮助你......”。
也许我应该使用我可以检索到的置信度值,并确保它高于某个阈值?
我正在使用Wit.ai
我的聊天机器人。问题是我的机器人总是试图回答一些问题。只有当我的机器人真正理解被问到的内容时,我才会回答它。我知道这是可能的,但如果我有一个回复很少的机器人,它似乎总是选择其中一个回复,即使它被问到一些完全不同的东西。
我想可以让它回复类似“对不起。我不知道你在问什么。我可以帮助你......”。
也许我应该使用我可以检索到的置信度值,并确保它高于某个阈值?
现在处理这个问题的最好方法是创建一个或多个带有超出范围的请求的故事,并在用户消息中添加一个具有策略“特征”的“catchall”实体(更多细节在这里)。
在最简单的情况下,您的“catchall”实体将只有一个值。您可以有多个值,例如,如果您想为不同类型的超出范围的请求提供不同类型的答案,但请记住,您的机器人越复杂,您需要制作的故事和数据就越多它工作正常。
我们还在研究更优雅的解决方案。敬请关注:https ://github.com/wit-ai/wit
一个简单的解决方案是无意识地创建一个故事,让机器人回答“我不明白”之类的问题
这个故事将在没有其他意图相关时开始。根据我们的经验,它运作良好。
您可以创建一些函数来处理用户输入消息的意图。
function handleIntent(intent, sender) {
switch(intent) {
case "jokes":
//Do Something
break;
case "greeting":
//Do Something
break;
case "identification":
//Do Something
break;
case "movie":
//Do Something
break;
default: // Any other intensions go here..
sendTextMessage(sender, "I couldn't understand that one :(")
break;
}
}
希望这个想法有帮助!:)