4、響應模塊
* * * * *
4.1什么是響應模塊?
響應模塊可以理解為用來對用戶的話進行響應的模塊。如當用戶說“幫我預訂會議室”之后,我們需要對用戶的這句話進行響應,那么我們就在響應模塊中編寫回復即可。對用戶的回復可以是直接編寫的一句話,也可以是調用從用戶說的話中抽取的參數,也可以通過url請求您(或第三方)的服務來進行響應,下面我們將逐步解釋如何來進行響應。
* * * * *
4.2如何創建響應模塊?
在上文對于意圖的介紹時,我們講解了如何創建意圖。響應模塊的創建與意圖的創建一致,也是在場景配置的頁面中進行添加。如下圖,我們在添加一個意圖后,在響應模塊的單元格中點擊添加一個響應模塊,在初次添加時,場景下沒有可用響應模塊,因此需要在彈框中選擇新增模塊,填寫模塊名稱即可完成添加。與添加意圖一樣,此時僅是添加了一個空的響應模塊,并沒有添加具體的響應內容,在我們所有意圖的響應模塊關聯之后,可以再逐步去完善響應模塊。需要注意的是,一個響應模塊可以對多個意圖進行響應,如果在一個場景下,所有的響應都是通過文本響應,沒有與第三方服務(或是開發者自己的服務)發生任何交互,那么一個場景僅添加一個響應模塊即可。

* * * * *
4.3如何編輯響應?
4.3.1 不調用參數的文本響應
點擊上面我們已經添加的響應模塊“行政引導”,進入響應模塊的配置。進入后可以看見,我們剛才編輯的“提出需要預訂會議室”這個意圖,這個意圖并不需要與其他服務進行交互,因此我們選擇文本響應即可。在意圖響應這個單元格里,我們編寫響應的內容即可,如“你想預訂哪個會議室呢,當前可用的會議室有會議室1,會議室2”。填寫完成后點擊保存。

到此為止,我們已經完成了一個簡單的意圖創建,意圖解析規則編寫,詞庫創建,意圖響應設置流程。可以在聊天對話框中進行測試體驗了!

4.3.2 調用參數的文本響應。
(查看本部分內容前,請先查看意圖教程中的高級教程)
在我們添加完“選擇會議室”這個意圖之后,需要編輯對于這個意圖的響應,進入響應模塊編輯頁面,我們看見在“選擇會議室”這個意圖后面的“意圖返回參數”單元格中,有一個“#{會議室}”,也就是我們在意圖編輯中設置的必須參數。我們可以在意圖的響應中調用這個參數來對用戶進行響應,如“正在為您預定#{會議室},請問您的會議開始時間是?”。點擊保存,我們就完成了通過調用參數來進行的文本響應了!在對話框中測試一下效果吧!


4.3.3 調用上下文返回的參數的文本響應
此部分參考上下文控制教程中的5.3 在意圖間傳遞參數。
* * * * *
4.4響應模塊高級教程
上文講解了,如何在不調用其他服務的情況下通過文本來對用戶進行響應,那如果需要通過開發者(或第三方)的服務來對用戶進行響應呢?如預訂會議室,場景對話只是對用戶進行流程的引導,在通過多輪對話收集了“會議室名稱”,“開始時間”,“結束時間”之后,我們實際上是需要將這三個參數傳遞給會議室預訂服務來完成會議室預訂的。
4.4.1 設置服務url
具體的設置如下圖,響應模式選擇與您(或第三方)的服務進行交互,在下方的框中填下一個可以通過post方法請求的url。

當前意圖被觸發后,我們將按照下方的協議請求這個url
{
"actionName": "行政引導",//意圖響應模塊名稱
"cmd": "會議室1?",//用戶說的話
"intentName": "選擇會議室",//解析了用戶說的話的意圖名稱
"semantic": {//意圖解析出來的實體
"#{會議室}": "會議室1"
}
}
在您的服務處理了這個請求之后,按照以下協議格式返回數據即可
~~~
[
{
"type": 0,//輸出類型(文本)
"value": "123456"//輸出內容
},
{
"message": {//輸出到附加信息
"info": "uuuuu"
},
"type": 1,//(圖片)
"value": "123456"//資源地址
}
]
ype類型:
0 文本
1 圖片
2 音頻
3 視頻
~~~
4.4.2 設置請求失敗時的響應
當您的服務在2s之內沒有對我們的請求做出響應時,我們會給用戶一個特定的回復,也就是您在這里設置的回復,如
