技能交互模型

技能为用户提供对话式交互服务。在与用户交互过程中,仅通过单轮对话很难完成用户的请求。大多数技能都需要通过不断与用户交互获取的用户请求的准确信息,完成用户的请求。因此技能需要分析如何与用户交互,设计好交互逻辑,保证交互过程的简单友好,并能充分理解用户的请求,为用户提供准确的、体验好的服务。

技能的交互逻辑可以通过创建交互模型实现。 用户的请求在交互模型中通过一个或多个意图来表示。意图是技能实现用户请求的基本单元,意图中包括槽位、常用表达等概念。与用户交互过程中的多轮对话在交互模型中通过对话模型来体现,包括必填槽位的追问、槽位意图的确认、上下文语境等情景。本文描述交互模型包含的内容以及如何在技能开放平台上创建交互模型。

技能交互模型的概念

技能交互模型包括意图、槽位、常用表达、对话模型等概念。

意图

意图指技能要满足的用户的请求或目的。意图包括自定义意图和系统意图。

  • 自定义意图
    技能创建的意图是自定义意图。如查询天气信息的技能,当用户说“今天天气怎么样”、“今天多少度”、“今天有雨吗”等请求时,技能解析用户的意图是“天气查询”。
    请参考意图了解更多信息,在没有特殊说明情况下,文中提及的意图都是指自定义意图。
  • 系统意图
    技能开放平台将一些通用的意图,如欢迎意图、取消意图、确认意图等做成了系统意图,提供给开发者,开发者可以直接引用。系统意图支持用户扩展常用表达。请参考系统意图了解更多信息。

技能使用意图表示用户的请求。一个技能可以包含一个或多个意图,可以创建自定义意图,也可以引用系统意图。

常用表达

常用表达指用户表达意图时具体的样例,用户表达样例越多,意图识别能力越强。构建常用表达时,需要输入用户在日常生活中表述该意图的常用语句。如在天气查询的意图中,用户可能会通过如下方式询问天气,这些就是常用表达。

今天天气怎么样
今天北京的天气怎么样
告诉我今天的天气情况
帮我查一下今天北京的天气
北京今天的天气好吗
今天下雨吗

常用表达中的表达方式尽可能丰富,这样意图识别就越准确。请参考常用表达常用表达建议了解更多相关内容。

槽位

槽位是意图的参数信息。如用户发出“今天北京的天气怎么样”的请求时,其中今天是“时间”槽位,是“天气查询”意图的参数信息。槽位信息更准确的描述用户的意图。

每个槽位都需要关联一个词典。技能可以自己创建词典也可以引用系统词典。

请参考槽位词典系统词典了解更多的相关内容。

对话模型

在用户请求技能提供服务的过程中,如果用户不能一次性的把请求信息提供完整,如打车服务的技能、订外卖技能。技能需要主动去与用户进行多轮对话交互,获取更多、准确的信息,然后才能为用户提供准确周到的服务。技能需要设计这种多轮的对话场景。通过建立对话模型,完成多轮对话的交互。对话模型包括以下场景。

  • 必填槽位的追问
    槽位是技能理解用户的关键信息,必填槽位是意图不可缺少的关键信息。必填槽位的追问是指当用户请求过程中如果没有提供必填槽位信息,技能主动发起追问,直到用户补全所有必填槽位信息。
    请参考必填槽位的追问了解更多相关内容。
  • 槽位确认
    槽位确认是指技能会让用户对提供的某些槽位信息进行二次确认,以确保这些信息的正确性。槽位确认通常情况是针对电话号码、卡号、钱数等与用户隐私及利益相关的槽位信息。
    请参考槽位确认了解更多相关内容。
  • 意图确认
    意图确认是指当技能搜集完所有的槽位信息,在执行请求前会对让用户意图进行确认,这种情况主要是针对发生订单支付的请求及发生公开信息发布的请求。
    请参考意图确认了解更多相关内容。
  • 上下文语境
    上下文语境是指技能结合上下文场景对用户的请求进行处理,将用户的上一个意图与下一个意图进行连接。如用户询问“今天北京天气怎么样”,收到技能回复后,用户会继续问“后天呢”,此时技能结合上一个意图分析“后天呢”应该是指“后天北京天气怎么样”的请求,并响应用户的请求。
    请参考上下文语境了解更多相关内容。

创建交互模型步骤

通过技能开放平台可以定义意图及其槽位、常用表达,也可以进行多轮对话,如必填槽位的追问、意图确认等场景。下面介绍在开放平台上面创建交互模型的步骤。

  1. 设计技能的交互模型。
    技能与用户交互过程中,需要遵循简单、友好的等原则,在设计交互模型时请参考技能交互设计规范
  2. 在开放平台上创建意图、槽位及常用表达。
    在技能开放平台上,点击交互模型——>意图——>创建自定义意图,进入意图创建页面,详细步骤如下。

    • 创建一个意图,填写意图信息。
    • 添加意图的常用表达,支持批量导入。
    • 在常用表达中选出能够表达意图请求的词语,并创建相应的槽位,选择相应的词典类型,并在常用表达中进行标注。
    • 根据槽位的重要性,标注出必填槽位及非必填槽位。

    images

    请参考意图及槽位了解更详细的内容。此外DuerOS支持系统意图系统词典,技能可以根据需要进行引用。

  3. 创建意图内对话模型。
    意图内的对话,包括必填槽位的追问、槽位确认、意图确认等场景,具体实现方式请参考对话模型章节。

  4. 创建多个意图之间的关联即上下文语境。
    如果技能有多个意图,先按照步骤2、3完成每个独立意图的创建,然后针对相互关联的意图,参考上下文语境建立意图之间的连接。

测试交互模型

在技能开放平台创建交互模型的过程中,可以界面右侧对模型进行测试,看看交互的效果是否满足预期。

如下是个税的交互模型,当用户说“我要从西二旗打车去上地”,能够识别意图、槽位等信息,满足预先的设想。

images

相关主题

意图
系统意图
词典
系统词典
对话模型