开发指南
## 技能开发指南
技能是AladdinGo提供的一个高度可扩展的机器人业务定义能力的功能模块,通过技能可以实现在机器人中处理各种业务逻辑,从而支撑企业各类业务需求。
技能开发是指在AladdinGo平台上根据业务需求,定义新的业务技能。
本开发指南指导开发者,如何在平台上开发新的技能,强化机器人的能力。
### 技能
技能是完成某一项工作任务的一系列意图的集合。
### 意图
一个包含明确含义的指令,意图包含入口意图及对话意图,入口意图可以通过自然语言命中进入,对话意图只有在入口意图被激活之后才能进入。例如:你不能在没有播放歌曲的情况下,输出停止的命令。
### 样本
机器人训练样本,目的是让机器人懂得用户可以使用哪些自然语言描述方式,进入到该意图,一个意图样本的定义,需要覆盖自然人日常使用自然语言处理该意图的表达方式。
### 词槽
意图指令所需要的一些数据。词槽可以定义为必须或非必须,有些场景中,需要明确的值才能处理业务流程,有些场景则规定,没有明确的值则使用某个默认值。
### 实体
词槽数据的类型,例如:中国人名、中国城市、日期。开发者可以自定义业务需要的实体类型,如请假类型,会议室类型等。
### 脚本
根据业务需求,执行指令的具体脚本。
## 技能开发
技能开发通过理解用户的业务需求,通过将业务需求进行建模,转换成机器人所需要表达的模型,再将模型录入平台,进行训练,从而达到机器人可以完成具体业务需求的能力。技能开发步骤如下:
##### 第一步:分析需求
通过用户分析,建立需求边界,建立对话示例,描述用户对机器人预期效果,包括输入、业务处理、输出效果等。
##### 第二步:建立意图
通过对需求的分析,明确意图处理流程,提取业务实体,明确业务实体类型。建立意图需要充分评估整个机器人的能力,对于从自然语言角度理解意图相同,但是在业务处理逻辑中属于不同业务指令,需要通过意图有效设计,避免机器人出现混乱。
##### 第三步:意图样本
建立意图样本,以适应意图输入要求。意图样本的梳理,需要覆盖自然人使用自然语言表达该意图的常见表达方式,同时需要考虑机器人不同技能的影响。
#### 第四步:建立实体
实体是意图数据参数,每一个意图都带有某种特定类型的参数,例如问天气需要哪个城市或时间,那么,城市和时间就是两个不同的实体。只有用户输入内容类型属于该实体时,才能作为有效参数传递给业务处理函数。例如,你不能查询杯子的天气情况,你可以查询广州的天气。
平台内置常用命名实体,如果意图中用到非常用命名实体,需要定义新的命名实体,具体参照命名实体章节。
#### 第五步:编写脚本
根据意图预期效果及流程,编写控制脚本,对业务进行处理。脚本编写规范参照后面脚本编写章节。
#### 第六步:测试
通过自然语言对机器人进行询问,查看机器人的处理结果,是否与预期一致,是否与自然人理解一致,是否能更快捷解决用户的业务问题。