我已经在IBM Watson中创建了一个使用Digress的聊天机器人,但是我试图找到一种在没有成功的对话框中做到这一点的方法。
示例:
Bot:欢迎 你:我要一个大比萨。 Bot:什么样的浇头? 您:能否请您列出不同的浇头? Bot:我们有火腿,蘑菇等。(偏离其他意图) Bot:什么样的浇头? (返回原始意图) 你:火腿 机器人:好的。
答案 0 :(得分:0)
使用Dialogflow的contexts实现起来非常简单。下面列出的意图将对此流程进行建模。
Pizza
意向将上下文“要求最高”应用于对话。这意味着接下来可以匹配以下两个意图Select Topping
或Available Toppings
中的任何一个。
用户可能会提到特定的顶部,这将导致Select Topping
的意图被匹配。否则,他们可能会询问可用的浇头,这将导致Available Toppings
被匹配。
如果Available Toppings
被匹配,则asked-topping
上下文将在回答用户的问题后仍然适用,因此Select Topping
的意图仍然是可匹配的。
您可以使用lifespan的意图来调整座席不再处于asked-topping
状态之前可以问多少其他问题。通过在asked-topping
意向匹配后将Select Topping
的寿命设置为0,我们可以防止代理商在订购比萨饼之后选择其他浇头。
Intent: Pizza
Example training phrase: "I want a large pizza"
Response: "what kind of topping?"
Input contexts: <none>
Output contexts: asked-topping (lifespan 2)
Intent: Select Topping
Example training phrase: "Ham"
Response: "Ok"
Input contexts: asked-topping
Output contexts: asked-topping (lifespan 0)
Intent: Available Toppings
Example training phrase: "can you please list the different toppings?"
Response: "We have ham, mushroom etc. What kind of topping?"
Input contexts: asked-topping
Output contexts: <none>