# 自定义技能


# 简介

自定义技能是面向各种开发者的可高度定制的技能类型,您可以通过零编程在线编辑或者编程的方式灵活设计开发对话式技能,例如信息查询、对话闲聊、百科常识、互动游戏等各个实用技能。

技能平台为自定义技能提供了直观的可视化编辑界面。通过编辑界面,可以便捷设计技能的意图、词典等内部逻辑。

天气查询示例:

用户: 今天天气怎么样?
技能: 你要问哪里的天气?(技能追问语句)
用户: 北京朝阳区的
技能: 朝阳今天天气晴,12~22℃,北风3级。
用户: 那明天有风吗?
技能: 朝阳明天东北风4~5级,出行请注意安全。
(会话结束)

# 组成

自定义技能由以下重要部分组成:

# 意图

在技能平台中,通过意图来表达用户的请求。意图指用户说话的目的,用户的需求和想法。如用户说“今天天气怎么样?”,意图就是“查询天气”。一个技能可以包含多个意图。

# 词典

是同类词语的合集,如:城市、日期、歌曲名等,在对话编辑中通过对词典的绑定和调用,进行重要信息的提取和语义槽调用。语义通过词典进行理解,然后抽取并输出机器可以理解的格式。词典分为自定义词典和系统词典。

# 用户表达

是用户在对话交互过程中提出的问题、请求或命令的自然语言表述或说法。

# 槽位

是从用户说法中提取的关键信息,如“北京天气如何”,语义槽就是[城市],取值为[北京]。

# 意图回复

在技能交互中,当用户提出请求后,技能需要针对用户的请求进行回复。目前支持在线自定义和Web Service服务配置两种方式。在线自定义回复是指用户在可视化编辑页面上按照统一设定好的模板进行条件回复。 Web Service服务配置回复则需要技能解析用户的请求,然后根据具体的业务逻辑进行处理,需要在配置服务页面进行授权配置和服务部署。

# 重要概念

# 沉浸式

指用户进入该意图之后,沉浸于该意图中,而不会轻易切换到其他意图。因此要求沉浸式意图退出时,系统会默认进行退出确认,只有当用户确认要退出后,才会退出该意图。

# 槽位继承

指在槽位内的数值在多轮对话中继承的过程。比如当用户问“【今天】【北京】的天气”后,又问“那【明天】呢?”,技能默认将【城市】这个槽位填充为【北京】,回复【明天】【北京】的天气。

# 强说法

具有明确意图的用户常用表达可以设置为强说法。当用户说强说法时,可以进行意图跳转。如果当前为沉浸式意图,则退出前会有意图确认;如果当前为非沉浸式意图,可以直接退出。

# 7分钟创建自定义技能

本章节从技能设计、技能实现到技能发布上线等方面讲解如何在本平台上面实现技能。让你可以快速地创建一个自定义技能,并了解技能与用户交互、响应用户请求、提供服务的过程。

自定义技能创建流程主要包含5个步骤:
【1.创建技能】–>【2.编辑意图】–>【3.开发配置】–>【4.技能测试】–>【5.技能发布】

# 1. 创建技能

在技能平台 -> 我的技能页面(https://usk.hivoice.cn/#/myskill)点击添加新技能,弹出添加技能的对话框。在技能类型处选择【自定义技能】,然后填写技能名称和技能标识,后点击【确定】完成自定义技能的创建。

avatar

# 2. 编辑意图

意图编辑流程如下: 【添加意图】–>【添加用户表达】–>【定义槽位】–>【意图确认】–>【意图回复】–>【意图测试】

(1) 添加意图
点击【添加意图】,在意图信息区输入意图中文名和标识名。 标识名保存生效后不可再编辑。 勾选是否沉浸式,沉浸式技能在交互时需要退出指令才可退出。

avatar

(2) 添加用户表达
输入用户表达语句,对语句中的关键词进行槽位标识和词典关联,并设定此说法是否是强说法,用户可以通过将说法开启技能,而不需先打开技能。

avatar

(3) 定义槽位
槽位列表中的槽位标识、中文名称和对应词典,必须与用户表达中的槽位标记信息保持一致。
勾选必填,则当用户的表达中不含有该槽位的值,机器会发起槽位追问。

  • 槽位追问
    系统会对用户进行追问,因此需要输入追问语句。

avatar

  • 回复表达子意图
    为了更好地理解用户对追问的答复,点击回复表达的方格,进行回复表达子意图的编辑。 回复表达子意图只针对当前槽位填充用户常用表达。

avatar

  • 关联词典
    槽位信息从词典内取值,也可以是任意词。如果是任意词则关联词典选择【任意词】,如果是从词典内取值,则选择对应的词典。 词典也分几类,用户根据自己的需求选择:
    1). 用户自定义的词典

avatar

        2). 引用系统内置词典

avatar

  • 控件选择
    针对有屏应用场景,支持控件形式的数据展示。 支持的控件类型有:图文卡片、数据列表、音频播放、视频播放、内嵌网页5种类型的控件。

  • 资源调用
    可调用平台内部资源,当前版本支持的内置资源如下图所示:

avatar

    选择资源之后,需要点击【API配置】,进行资源参数与意图槽位的绑定,绑定完成后,点击测试查看绑定后的资源调用结果。

avatar

(4) 意图确认
意图确认是系统对用户发起的对整个意图中所有语义槽信息的一次确认。
意图确认为可选项,勾选后输入确认语句即可,可以通过[]引用槽位信息。

avatar

(5) 意图回复
意图回复,支持在线自定义和Web Service服务配置两种方式。

  • 在线自定义
    在线自定义方式,可以直接在页面上编辑不同条件下的回复内容、客户端动作和下一轮意图。 可在线自定义的回复内容分为条件回复(包含默认条件)和异常播报两类。

  • WebService
    选择WebService,则意图回复内容需要在开发配置中通过Web Service服务部署来实现。

# 3. 开发配置

技能创建成功后,需要通过WebService部署到云服务上。
技能ID是在技能创建时系统自动生成的ID,当前仅支持WebService部署方式,输入地址和SecretKey,点击【保存】完成开发配置。

avatar

# 4. 技能发布

技能完成开发和测试后,请按照要求填写技能发布信息,并点击【发布】发布技能。注意:此处的版本发布为自发布,即将版本发布到本账号,只能供本账号使用,如果需要将版本发布到商城,需要在版本管理中上架到商城。

# 5. 版本管理

技能申请发布上线后,可以在版本管理中查看技能状态并进行相应的操作。

  • 版本上架
    版本上架是指将自发布的版本,上架到技能商城。
  • 版本还原
    还原版本是指将正在开发中的技能内容,还原到选中的已发布的版本内容。
    注意: 还原后,技能内容会被覆盖,暂不支持撤销还原操作,原开发中的技能内容无法找回。
  • 版本删除
    点击“删除”按钮,会将版本从发布列表中删掉。
    注意: 已上架状态的版本,是无法被删除的。

如上,即完成了天气预报技能的创建。