## 5.3 暗號
>本節主要介紹了暗號的相關內容。其中包含暗號的兩項作用:傳遞重要參數值以及連接上下文意圖。另外介紹了暗號周期:如果在流程中需要使暗號在多輪對話中生效,就必須設置暗號周期來規定暗號有效輪數。
人跟人之間會通過特殊信號、也就是“暗號”來交流,意圖和意圖之間也可以通過暗號來連接。所以,暗號有兩個作用:連接意圖和傳遞信息。下面我們來看一下怎么使用暗號。
### 5.3.1 暗號傳遞參數值
案例:你喜歡周杰倫嗎
任務:完成一個主題的上下文聊天
以下面的對話為例。

我們看到第二句用戶并沒有說周杰倫,但是機器人卻能準確的回答出,這就是通過暗號傳遞了歌手的信息。


* 牢記:接受暗號參數值=#暗號名稱.參數名稱,這里的參數名稱一定是發出暗號的意圖的參數名稱
再舉一個案例:訂機票
任務:完成機票預訂信息的收集
流程:訂機票——>出發地——>目的地——>出發日期——>機票
首先,建立四個意圖,并依次傳輸暗號,連接起意圖。




這里意圖處理與普通意圖相同,都是系統自動生成


這里需要傳遞上一條意圖收集的“出發地”信息,就需要在意圖處理增加一條"from",此處的值為:#目的地(暗號).from(上一條意圖需要傳遞的參數值)。如此便實現了跨意圖傳參數。

這里需要把剛剛收集到的兩條信息“出發地”“目的地”,就需要在意圖處理增加兩條,同樣是值為:#出發日期(暗號).to(上一條意圖需要傳遞的參數值)、#出發日期(暗號).from(上一條意圖需要傳遞的參數值),;連同當前意圖獲得的"date",我們收集到了訂機票需要的全部三個參數。

試一試:

可以看到最后一條意圖雖然只在用戶說收集了一個日期信息,但JSON包含了全部出發地和目的地的信息,這些都是通過暗號傳遞和意圖處理實現的。
### 5.3.2 暗號連接上下文
案例:暗號對話:你喜歡周杰倫嗎、你喜歡蘋果嗎
任務:完成多主題的上下文聊天
我們再來看一組對話

在上面的對話中用戶問到了兩次“為什么”,但是機器人能準確的知道用戶問的是蘋果還是周杰倫,這也是通過暗號實現的。


所以我們可以看到,暗號是一對一的,即使用戶說重復也不會有沖突。這就實現了上下文的聯系。
### 5.3.3 暗號的周期
案例:暗號對話:對詩
任務:完成對詩,允許錯誤三次。
設置好的發出暗號,點擊即可進行周期設定。所謂周期就是意圖發出的暗號在多少輪對話內是有效的,如果希望暗號在N對話內都有效,那就設置周期為N,默認情況下暗號周期是1,則第二輪對話時暗號就失效了。
為了完成對詩任務,首先,建立意圖,并設置暗號周期為3:

接收暗號的意圖分為兩個(也可以只用一個意圖,通過一個意圖內JS判斷詩句對錯,這里先用兩個意圖),一個是正確答案、一個是非正確答案。


設置非正確答案的意圖優先級低于正確答案意圖:


如此可實現以下對話:
錯誤三次,自動退出對詩。圖中紅框內的對話在暗號周期,第四次回答即使正確,也超出了暗號周期,不再屬于對詩上下文的范圍。

未錯滿三次,在周期內答對題:

### 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 聯系我們