我们正在尝试为汽车经销商建立聊天机器人。当用户要求诸如“我正在寻找福特2017年款”之类的查询时,在向用户显示最终结果之前,我们还有一些空位需要填写。因此,为了解决这个问题,我们创建了带有必需参数的意图。我们还提供了一些自定义UI按钮,以帮助用户进行广告位填充过程。但是,有时用户可以选择提供自己的输入,有时用户可以输入广告位值以外的其他文字。
例如:
在这种情况下,由于用户未提供预期的插槽/参数,插槽填充被破坏了。另外,如果我们能以某种方式回复这种细微差别并继续进行插槽填充,那将是一个很好的用户体验。
编辑: 我们已经在插槽填充期间加入了一些机制,以处理用户输入所需插槽值以外的其他输入的情况。但是有时此机制无法正常工作,有时用户可能会输入触发新意图的语句。
如何使用对话框流程处理此类情况?
答案 0 :(得分:0)
我建议不要使用Dialogflow的内置插槽填充。我以前遇到过这个问题,现在我只是为要从用户收集的每个“变量”创建不同的意图。 如果让用户知道您希望他们回答的格式,您仍然可以使用插槽填充。KLM聊天机器人可以完美地做到这一点,您应该检查一下。
更新:这是处理不同参数输入的方法。每当用户响应某件事时,您都不会期望'question.invalidInput'被触发,并且您可以在其中提醒该用户所期望的格式。
Intent: question
Trainings phrase: 'May I enter?'
Output context: 'await_olderThan21'
Response: 'Are you older than 21?'
Intent: question.yes
Training phrase: 'yes'
Input context: 'await_olderThan21'
Output context: ''
Response: 'Yes, you may enter'
Intent: question.no
Training phrase: 'no'
Input context: 'await_olderThan21'
Output context: ''
Response: 'No, you may not.'
Intent: question.invalidInput
Training phrase: @sys.any
Input context: 'await_olderThan21'
Output context: 'await_olderThan21'
Response: 'Invalid answer. Please reply with yes or no.'
例如:
User: I am looking for ford latest models 2017 or afterwards.
Bot: Which model are you looking for: We display some options
User: escape
Bot: What is the price range you are looking for: We display some options
User: I looking for something which will suffice for a family of 4.
Bot *fallback*: Please enter the maximum amount you would like to spend on a car (in dollar)
通过这种方式,用户知道如何响应,您会注意到您的预期行为会减少。
始终尝试按照所需的方向引导用户。
希望这会有所帮助!