-
DuerOS开放平台
-
技能开放平台
-
自定义技能
- 自定义技能简介
- 自定义技能创建
-
有屏技能
-
技能交互模型
-
自定义技能协议
- 处理DuerOS发送的请求
-
技能部署
-
技能开发样例
- 账户关联
-
技能测试
-
技能发布
-
技能付费
-
个性化服务
-
内容播报技能
-
小技能
-
平台能力扩展
-
SDK
-
预览版功能
- 全双工(Preview)
-
APP技能(Preview)
-
-
智能家居开放平台
- 品牌使用规范
-
开发者服务条款
对话模型在进行槽位追问、意图确认时,DuerOS能够准确的理解用户在当前交互中处于的位置,并记录用户在对话中的位置信息,利用所在位置上下文信息来处理用户的模糊回答。本文介绍DuerOS处理对话模型中模糊回答的场景。
在用户与技能的交互过程中,用户经常使用“好的”、“是的”、“确认”、“不是”、“否”等词语来回答技能的提问,如果不考虑当时对话场景,技能不知道用户在回答什么问题,这些类似的回答被称为“模糊回答”。
例如,在一个技能对话中,用户使用“确认/是的”可能是在回答以下问题。
- 可能是对槽位确认的回答。
- 可能是对意图确认的回答。
- 可能是回答类似布尔类型值的槽位追问。
- 可能是针对意图对话之外的问题的回答,此时会触发系统的确认意图。
用户:我想订一杯咖啡
技能:好的,需要加糖吗
用户:不需要(槽位追问)
技能:好的,已经帮你下单,请问还需要点一些别的吗
用户:不需要 (在上述对话之外,触发取消意图)
上述咖啡示例中,用户回答中包含两次模糊回答。用户第一次回答“不需要”,DuerOS解析该回答是针对“糖”这个布尔类型的槽位的追问的回答,会向技能发送IntentRequest请求并携带“糖”的槽位信息的值“不需要”。用户第二次回答“不需要”,DuerOS解析用户的回答与订咖啡意图无关,该回答触发了系统的取消意图,所以将取消意图发送给技能。
技能引用系统意图时会产生模糊回答,如引用确认意图
和取消意图
来处理某次意图对话之外的模糊回答(肯定回答和否定回答)。当用户的回答不在某个意图中时,DuerOS会向技能发送确认意图或取消意图。
用户:我想订一杯无糖咖啡
技能:好的,已经帮你下单,请问还需要点一些蛋糕吗
用户:不需要 (在上述对话之外,触发取消意图)
如上述订咖啡的技能,当技能完成用户点咖啡的意图后,询问用户是否需要蛋糕,用户回答不需要时,用户的回答不在对话内,DuerOS会发送取消意图给技能,技能收到取消意图后,进行相应的处理。
槽位追问时发生的模糊回答包含两种情况,一种情况是使用类似布尔值的槽位,一种是用户的回答很简短。
在某些技能完成意图过程中,需要使用用户回答的肯定或否定答复。这种情况下,意图没有改变,所以不能使用系统意图中的确认意图和取消意图。在这种情况下,通常可以定义一个类似布尔值类型的槽位,并创建该槽位值对应的词典(词条:“确认”、“是”、“好的”,“取消”、“不是”,“不需要”、“否”等等)。通过填充槽位值,来获取所需要的布尔类型值。
用户:我想订一杯咖啡
技能:好的,需要加糖吗
用户:不需要(槽位追问)
技能:好的,已经帮你下单
在上面订咖啡的技能中,当技能追问用户是否加糖时,用户回答不需要,DuerOS会识别用户的回答,分析对话进行的位置,将“不需要”解析到对应的意图的槽位信息中,并向技能发送IntentRequest消息。
在技能进行槽位追问的过程中,用户回答可能比较简单。如果不考虑对话场景,技能无法处理。这种情况下,DuerOS会根据对话模型的上下文,准确的分析用户的回答,向技能发出准确的请求消息。
用户:我想订一张火车票
技能:好的,你从哪里出发
用户:北京 (用户的简短回答)
技能:你要到哪里去
用户:天津 (用户的简短回答)
在上面订火车票的示例中,技能在回答出发城市和目的城市信息时,都使用了简短的回答,只包含一个槽位值。出发城市和目的城市都是使用的同一个城市词典,DuerOS结合上下文场景,准确的分析出“北京”、“天津”对应出发城市和目的城市,并向技能发送包含“北京”、“天津”槽位值的消息。