如何配置多槽位反复填充场景?
问题描述
要实现与机器人交互来进行订餐的话术,需要获取的槽位信息有,订餐日期,时间,人数等,要求支持用户在与机器人交互的过程中随时更改已填过的槽位。
例如用户已说过“明天晚上6点,3个人”,但是确认环节时,又说“改成7点吧”,系统需要重新填槽,时间改成晚上7点。
根据当前ODFS的处理方式,如果使用意图模板的槽位必填校验,则会造成修改后的槽位信息不能立刻修改;而如果使用清除上下文重新填槽位,则不需要修改的槽位也会被清空。
解决方法
可使用如下方法实现多轮对话中用户反复变更信息的场景:
- 在意图模板配置时,将所有的槽位都设置成非必选槽位,这样不会使TUC在一个意图里缓存已填槽位。等待下次交互获取下一个槽位信息,避免了槽位已填就不能修改的问题。
- 在“响应”页签添加根据不同槽位信息返回不同命令字的判断逻辑。
- 在流程编排页面,通过流程对意图返回命令字进行分支判断,播放不同的语音。
每一次的识别交互,都填一次槽,填上一个或多个就返回不同的意图码给对话流程,对话流程将每次交互获取的槽位信息,缓存到流程变量中,从而实现每次识别都能根据ODFS缓存的信息来刷新槽位填充的内容。