技能开发的10个要点
DuerOS-河徒 发布于2018-11-30 14:51 浏览:1065 回复:0
1
收藏
1
收藏

DuerOS的技能可以为用户提供无限可能性。技能开发者通过开发技能,将自己的产品和服务触达各个DuerOS智能硬件终端用户。技能开放平台是DuerOS为第三方开发者提供的一整套技能开发、测试、部署工具的开放平台。第三方开发者可以在平台上,通过可视化界面,简单、高效地开发各类DuerOS技能。

我们很欣喜的看到越来越多的开发者加入了技能开发的行列,也有很多开发者给我们提供了宝贵的反馈。在帮助技能开发者开发语音交互技能的过程中,我们看到了一些共性的问题阻碍了技能成为用户喜爱的优质技能。这些问题涵盖了技能设计,开发,部署和上线的各个阶段。为此,我们总结了如下技能开发过程中的十大要点,希望能够帮助到技能开发者。

  • 选取合理的技能调用名称
  • 帮助DuerOS理解用户
  • 完善自定义词典
  • 处理用户所有的输入
  • 向用户提供帮助信息
  • 提供多变的交互话术
  • 选择合理的部署方式
  • 进行测试
  • 看数据,持续更新
  • 持续获取DuerOS和技能平台更新信息

接下来我们会对这些要点进行一一的说明,并提供相应的详细文档和代码示例。

1、选取合理的技能调用名称

技能调用名称是技能的入口,一个不长并且有趣的调用名称可以让用户对技能产生非常好的第一印象。另外,好的调用名称需要能够清晰的表达技能提供的服务,并且清晰易读,不会产生混淆。应当避免选取中英文数字混用的调用名称,或者使用拗口生僻和多音字词作为调用名称的一部分。

了解更多:调用名称的要求

       在技能上线审核的过程中,技能logo也是一个重要的考虑因素。技能logo需要与技能直接相关,并且清晰可见无水印。

了解更多:技能logo要求

2、帮助DuerOS理解用户

意图的常用表达是用户表达意图时具体的样例,不同用户的表达形式是多种多样的。在技能平台上配置意图信息的时候,开发者可以通过配置丰富完整的意图常用表达,以覆盖尽可能多的用户口语表达,从而从NLU层面帮助DuerOS更好的理解用户。

了解更多:常用表达

我们强烈建议技能推测用户可能的回复作为expectedResponse参数提供给DuerOS。这样可以从ASR层面帮助DuerOS更好的理解用户。

了解更多:expectResponse参数

3、完善自定义词典

       词典是用户与技能交互过程中的一个重要概念,是指某领域词汇的集合。自定义词典是指开发者根据需求创建的词典。如果一个意图使用了自定义词典,那么开发者需要考虑词典中每一个词条是不是有同义词或者同音字,以便进行相关的配置来理解用户的输入。

       以技能职业推荐为例,技能配置了标识名为money的词典,并设置了“非常重要”,“一般”和“不重要”三个词条。同时,考虑到用户对表达自己对钱的看法的不同话术,词典对着三个词条配置了相应的同义词。

了解更多:词典

4、处理用户所有的输入

       用户与技能交互时候使用的话术是多种多样的。如果技能定义的意图没有覆盖到用户的Query,会给用户造成困扰并导致技能退出。为解决这个问题,DuerOS提供了缺省意图(ai.dueros.common.default_intent)配置。我们建议所有的技能都引用缺省意图,并对其进行相关的处理。

了解更多:缺省意图

5、向用户提供帮助信息

我们看到很多技能的上线申请被驳回是因为这些技能在LaunchHandler中返回的开场语只是简单的几句话,并没有包含足够的信息指导用户如何开始使用技能。我们建议技能的“开场语”提供这些必要信息:欢迎语+核心玩法+常用指令引导。

在用户使用技能的过程中,也有不知道如何与技能交互的可能性。为应对这种情况,我们建议每个技能都定义和实现帮助意图。

除了语音播报技能使用帮助,技能还可以通过Hint指令展现技能的引导词。技能引导词是技能展现的提示信息,引导用户与技能进行交互。

了解更多:Hint指令

6、提供多变的交互话术

       对于社交类和养成类这些技能,千篇一律的回复话术会很快让用户感觉到厌烦。我们建议技能对同一个内容提供多样化表述。如:

技能:“李白乘舟将欲行”的下一句是什么?

用户:不知道

技能:回答错误,正确答案是xxx,是否继续?

用户:继续

技能:“春风吹又生”的上一句是什么?

用户:不知道

技能:哈哈,聪明的你也被难倒的时候,正确答案是xxx,是否继续?

此外,为了增加交互的趣味性和场景的带入感,我们建议开发者使用SSML在技能的交互话术中增加背景音,音效等效果。

了解更多:SSML使用文档 

在一些类型的技能中,技能会需要用户问答一些问题。此时,技能的提问不能模糊不清,要确保用户明白这里有问题需要回答。并且,技能提供给用户的可选项最好不要超过三个。在用户回答问题以后,技能可以接下来的会话中加入肯定的话术,比如“好的”。让用户明白他的回答已经被技能处理,增加用户使用技能的信心。

技能:第一题,生活中有些人总是回避或冷淡我,答案1,不是的;答案2,不一定;答案3,是的。确定答案后请告诉我,如“答案1”

用户:答案1

技能:好的,请听第二题。。。

了解更多:技能交互设计规范

7、选择合理的部署方式

       开发者可以选择三种方式部署技能:

  • 部署在开发者自有的Web服务器上
  • 部署在百度云CFC上
  • 直接在技能开放平台上部署

如果开发者选择在自己的Web服务器上部署技能,需要保证技能通过使用了权威签名证书的HTTPS进行通信。另外,DuerOS会通过HTTPS HEAD方式向技能发送请求,对技能进行健康检查。技能需要保证对该请求返回是20开头的HTTPS正常返回码。

了解更多:Web Service部署

8、进行测试

       跟其他软件开发过程一样,测试对交互式技能开发至关重要。技能平台为技能开发者提供了模拟测试工具,方便开发者对技能完整流程进行测试。意图配置页面和技能配置服务页面也提供了测试功能和log展示,开发者可以进行相应的意图识别测试。

       开发者也可以使用Postman等工具通过向技能服务发送post请求的方式对技能进行单元测试。此外,使用百度云CFC开发技能的开发者可以使用BSAM CLI命令行工具对CFC函数进行管理和测试,详情请参阅:BSAM CLI使用示例

       技能服务本质上是Web服务,对技能的性能测试可以沿用业界通用的测试工具,如JMeter等等,这里不做详述。

9、看数据,持续更新

       技能平台的技能数据页面提供丰富的数据展示功能。开发者可以从中获取新老用户趋势,会话趋势和意图使用详情等信息。通过这些信息,开发者可以对技能的使用情况有清晰的了解,并针对这些趋势对技能交互进行相应的调整。

       开发者还可以在会话查询中查看用户跟技能交互的所有Query,从中发现用户的交互习惯和趋势,以便对技能的意图和词典进行相应的修改。

10、持续获取DuerOS和技能平台更新信息

       DuerOS背靠百度海量的数据和内容服务,持续升级。相应的,技能平台提供的功能也在不停的增加和升级中,为开发者提供更多便利和强大的服务。技能平台的文档中心提供了翔实的文档说明,是了解DuerOS和技能平台信息的最佳方式。

技能开发SDK发布在https://github.com/dueros/,开发者可以在那里找到SDK文档和技能Sample。

另外,数以万计的开发者在QQ群,微信群和论坛中交流开发心得。我们也定时把开发者的问题总结成FAQ发布在论坛中。

了解更多:技能开发FAQ

收藏
点赞
1
个赞
TOP