## 5.3 暗号
>本节主要介绍了暗号的相关内容。其中包含暗号的两项作用:传递重要参数值以及连接上下文意图。另外介绍了暗号周期:如果在流程中需要使暗号在多轮对话中生效,就必须设置暗号周期来规定暗号有效轮数。
人跟人之间会通过特殊信号、也就是“暗号”来交流,意图和意图之间也可以通过暗号来连接。所以,暗号有两个作用:连接意图和传递信息。下面我们来看一下怎么使用暗号。
### 5.3.1 暗号传递参数值
案例:你喜欢周杰伦吗
任务:完成一个主题的上下文聊天
以下面的对话为例。
![](https://box.kancloud.cn/216dad4a27570473bffff97c217a97ee_1364x728.png)
我们看到第二句用户并没有说周杰伦,但是机器人却能准确的回答出,这就是通过暗号传递了歌手的信息。
![](https://box.kancloud.cn/d764749c3c13ea58d6c5394517c04e77_1355x734.png)
![](https://box.kancloud.cn/8dd1cae9889c6840e7d9c42b8bb6bf45_1363x734.png)
* 牢记:接受暗号参数值=#暗号名称.参数名称,这里的参数名称一定是发出暗号的意图的参数名称
再举一个案例:订机票
任务:完成机票预订信息的收集
流程:订机票——>出发地——>目的地——>出发日期——>机票
首先,建立四个意图,并依次传输暗号,连接起意图。
![](https://box.kancloud.cn/df57a97b828a2cb9ef0cc9f3581189b3_342x155.png)
![](https://box.kancloud.cn/11116a25e9e05e20137f03e020652f7d_554x161.png)
![](https://box.kancloud.cn/8cbb338644ee0a99bfb9691895e0ed4c_554x230.png)
![](https://box.kancloud.cn/0ded692fbfaddaa9787ca543dc558e2c_554x404.png)
这里意图处理与普通意图相同,都是系统自动生成
![](https://box.kancloud.cn/560d148f9aae6fc124c569c67ef3f310_679x664.png)
![](https://box.kancloud.cn/d430f0c61d4a4e3ebd0019312ebe2489_676x469.png)
这里需要传递上一条意图收集的“出发地”信息,就需要在意图处理增加一条"from",此处的值为:#目的地(暗号).from(上一条意图需要传递的参数值)。如此便实现了跨意图传参数。
![](https://box.kancloud.cn/ba1acbfe2617f051d8df847ed6f73df6_692x524.png)
这里需要把刚刚收集到的两条信息“出发地”“目的地”,就需要在意图处理增加两条,同样是值为:#出发日期(暗号).to(上一条意图需要传递的参数值)、#出发日期(暗号).from(上一条意图需要传递的参数值),;连同当前意图获得的"date",我们收集到了订机票需要的全部三个参数。
![](https://box.kancloud.cn/b4c05aa920782041ceaf05fbe52663f2_689x521.png)
试一试:
![](https://box.kancloud.cn/35c6eb69066116a7da7faf0bb6a7d269_1053x615.png)
可以看到最后一条意图虽然只在用户说收集了一个日期信息,但JSON包含了全部出发地和目的地的信息,这些都是通过暗号传递和意图处理实现的。
### 5.3.2 暗号连接上下文
案例:暗号对话:你喜欢周杰伦吗、你喜欢苹果吗
任务:完成多主题的上下文聊天
我们再来看一组对话
![](https://box.kancloud.cn/208c78ce4bc87e5d5b8c5128d66a9545_1356x731.png)
在上面的对话中用户问到了两次“为什么”,但是机器人能准确的知道用户问的是苹果还是周杰伦,这也是通过暗号实现的。
![](https://box.kancloud.cn/d79eed0e715914d39fae8da243dee7f6_1363x733.png)
![](https://box.kancloud.cn/83e8df45b0ce67fe809ba78722b6e411_1361x732.png)
所以我们可以看到,暗号是一对一的,即使用户说重复也不会有冲突。这就实现了上下文的联系。
### 5.3.3 暗号的周期
案例:暗号对话:对诗
任务:完成对诗,允许错误三次。
设置好的发出暗号,点击即可进行周期设定。所谓周期就是意图发出的暗号在多少轮对话内是有效的,如果希望暗号在N对话内都有效,那就设置周期为N,默认情况下暗号周期是1,则第二轮对话时暗号就失效了。
为了完成对诗任务,首先,建立意图,并设置暗号周期为3:
![](https://box.kancloud.cn/449e10aba71d40809e553a06f32b0aa5_684x731.png)
接收暗号的意图分为两个(也可以只用一个意图,通过一个意图内JS判断诗句对错,这里先用两个意图),一个是正确答案、一个是非正确答案。
![](https://box.kancloud.cn/14963601952bba28b0a16fdb5e7d5908_553x215.png)
![](https://box.kancloud.cn/28df1f25d68040722e09ebde2a1a9875_563x205.png)
设置非正确答案的意图优先级低于正确答案意图:
![](https://box.kancloud.cn/5be3094ff50d7718b94f9da3d9c2387e_681x696.png)
![](https://box.kancloud.cn/e3108a31c238fef58cda5ca59c43c41f_687x701.png)
如此可实现以下对话:
错误三次,自动退出对诗。图中红框内的对话在暗号周期,第四次回答即使正确,也超出了暗号周期,不再属于对诗上下文的范围。
![](https://box.kancloud.cn/4a22886003625d9ae4635410c6edd612_511x561.png)
未错满三次,在周期内答对题:
![](https://box.kancloud.cn/4140f6113b68e6b583cd4b810f05495b_510x249.png)
### 5.3.4暗号总结
暗号在流程管理任务上是非常好的工具,比如订咖啡、订酒店。大家可以试试看。
温馨提示:
* 一个意图可以发出多个暗号,暗号之间是或的关系;一个意图也可以接收多个暗号,但暗号之间是与的关系。所以意图尽量不要接收大于1个数量的暗号。
* 优先级大于暗号。两个相同用户说的意图B1、B2,其中B1接收来自A的暗号、优先级为0,B2不接收任何暗号、优先级为1,那么当进行完意图A后,发出下一句用户说,优先进入优先级更高的B2,而不是有暗号连接的B1。
- 1. 海知智能第三方技能插件开放平台概述
- 2. 快速接入API
- 2.1 硬件接口调用
- 2.2 快速接入微信
- 2.3 API接入常见问题
- 3. 技能插件
- 3.1 基础能力类
- 顶级过滤器
- 用户知识图谱
- 机器人档案
- 通用闲聊
- 儿童闲聊
- Smart Reply
- 轻量闲聊
- 3.2 语音游戏类
- 成语接龙
- 词汇乐园
- 词语接龙
- 鹦鹉学舌
- 动脑猜猜
- 挑战单词
- 冒险世界
- 猜猜我是谁
- 阿拉丁学诗词
- 猫猫托管所
- 漂流瓶
- 诗词大会
- 国学大会
- 我爱猜歌名
- 我在看着你
- 灯谜猜猜
- 3.3 休闲娱乐类
- 星座运势
- 悦耳声音
- 幸运签
- 调教机器人
- 娱乐推送
- 3.4 生活服务类
- 黄历
- 计算器
- 古诗词
- 时间询问
- 翻译类技能
- 天气资讯
- 日程创建
- 日程创建指令
- 闹钟
- 食材知识
- 冥想音乐
- 格言
- 每日英语
- 汉语词典
- 豆果菜谱
- 古文翻译
- 3.5 音频点播类
- 喜马拉雅FM
- 新闻广播
- 音乐点播
- Smart Music
- 儿童听听
- Smart Audio
- 儿童笑话
- 点播控制指令
- 3.6 视频点播类
- 影视点播
- 3.7 百科知识类
- 人物百科
- 百科问答
- 实时百科
- 3.8 体育健康类
- 五分钟健身
- 4. 开发者初级教程
- 4.1 开通服务
- 4.2 创建机器人
- 4.3 设置机器人
- 4.4 获取技能插件
- 4.5 让机器人学会聊天
- 4.6 导入知识库
- 4.7 多种问答形式
- 4.8 数据统计
- 4.9 粉丝管理
- 5. 开发者中级教程
- 5.1 词典运用
- 5.2 意图处理
- 5.3 暗号使用
- 5.4 事件触发
- 5.5 优先级
- 5.6 触发器
- 5.7 快捷键
- 5.8 意图报错
- 6. 开发者高级教程
- 6.1 handlebars模版语言
- 6.2 JavaScript简单介绍
- 6.3 JavaScript使用说明
- 6.4 JavaScript使用案例
- 6.5 JavaScript常见问题
- 7. 快速发布技能
- 8. 帮助中心
- 8.1 常见概念
- 8.2 帮助视频
- 8.3 联系我们