我感觉到你的痛苦:)
您必须根据用户输入“强制” wit.ai 进入正确的故事,如果您需要用户跟随故事直到最后 - 您将不得不继续“强制”他们进入对话链。
我的意思是:
如果用户说What's the weather
您可以通过名称再引入一个自定义实体,wth
并在“理解”选项卡中使其基于关键字并添加与该weather
单词相关的严格关键字列表(预测...)。
这可能是你的“指导线”。当此实体出现时 = 用户使用了与天气问题相关的关键字 = 您可以将该实体wth
用作故事的每个操作和响应的要求(操作选项卡)。
在我拥有的一些应用程序中——对于我想到的“这个故事在做什么”的每个故事——切入点是什么,可以这么说,并想出了一个实体,通过使用“操作”选项卡和设置来引导用户走上对话路径Only if
……Always if
对答复和行动的要求。
这种方法非常严格,但它可以让您对用户从您的“机器人”接收到的内容有一定程度的控制,因此您可以预测操作和回复。
我在玩另一种方法,你有很多故事,它们都是“不完整的”,但它们试图涵盖用户可能的不同答案。所以用户开始在一个故事中聊天,然后根据他的回答 - 另一个故事开始了,然后是另一个故事,然后是另一个故事......
也是一种有效的、更灵活的方法,但它需要对“机器人回复”\故事进行非常好的规划,以便他们感觉以一种合乎逻辑的、对话的方式联系在一起。是的,它还需要仔细的上下文管理,因为如果每个故事都会添加上下文 - 它可能会变成一大堆实体和值,所以你需要认为故事 A 将实体 A1 添加到上下文中,但如果稍后故事 B启动并将 B1 实体添加到上下文中,然后我需要删除 A1,因为它们是冲突的......
总结一下:看起来你想要更多的控制权并知道对话的去向。为此 - 尝试“操作”选项卡并设置答案和操作的要求。你可以让它非常直接和直接。