熱門標簽:怎么進行百度地圖標注
vivo百應智能電話機器人
宜君外呼系統(tǒng)
電話機器人南京
小微電話機器人
廣州公司申請400電話
電銷外呼營銷系統(tǒng)
佛山青牛防封電銷卡
全智能電話機器人
多輪對話設計器
- 概述
- 安裝
- 快速開始
- 腳本語法
- 示例應用
- 首頁
- 智能問答引擎
- 全渠道智能客服
多輪對話設計器
概述
多輪對話設計器 (Conversation Designer)是以自然語言為輸入,定義聊天機器人邏輯思維的工具。它可以很方便的通過Chatopera支持的腳本語法描述復雜的對話邏輯,并且通過函數(shù)的形式集成企業(yè)的其它服務。企業(yè)的業(yè)務人員可以很容易的學習腳本語法,制作滿足企業(yè)業(yè)務需求的聊天機器人。
多輪對話設計器是設計滿足業(yè)務需求的對話機器人的PC端應用程序,現(xiàn)已支持Windows和Mac OSX平臺。多輪對話能力是聊天機器人模仿人的對話能里的一大挑戰(zhàn),在復雜的上下文和需要很多背景知識的前提下,現(xiàn)有的人工智能技術是無能為力的,在Chatopera,我們相信在企業(yè)服務中,當話術或流程固定的情況下,依賴Chatopera的產品可以輸出用對話完成任務的服務,比如用對話完成點餐、報銷、請假。這些對話可以在企業(yè)的聊天工具中,也可以通過智能音箱的等其他客戶端。
安裝
僅支持Mac OSX和Windows操作系統(tǒng)。
下載地址
下載地址:
https://www.chatopera.com/product/conversation-designer
- MacOS:dmg為文件后綴的安裝文件,雙擊打開,根據安裝向導安裝。
- Windows:exe為文件后綴可執(zhí)行文件,雙擊打開,根據安裝向導安裝。
啟動應用
多輪對話設計器打開后頁面
可能遇到的問題
1. Macos上首次啟動警告
MacOS權限問題
解決方案
在應用中心,找到“多輪對話設計器”:
應用中心
選擇“多輪對話設計器”并且右鍵:
右鍵打開
點擊“打開”(“Open”)。
快速開始
下載安裝包后,雙擊打開,進入安裝向導。
安裝完打開應用圖標后進入主面板,如下圖:
應用主面板
導入示例程序
下載示例程序包文件:小叮當-1.0.0-conversations.c66
https://github.com/chatopera/conversation-sampleapp
示例程序下載地址
在主面板點擊界面的右上方的“導入”按鈕,選擇剛才下載的示例程序小叮當-1.0.0-conversations.c66如圖:
導入對話框
導入成功,可以看到在聊天機器人界面有一條數(shù)據顯示,“名字 小叮當”等;點擊小叮當?shù)?ldquo;管理”按鈕,可以看到它的多輪對話列表,包括:chatopera,profile,weather。如下圖:
多輪對話列表
 |
對話 |
功能 |
chatopera |
關于Chatopera的公司信息 |
profile |
機器人的畫像 |
weather |
提供天氣查詢功能的對話 |
測試示例程序
可以針對上面的三個多輪對話,進行一番聊天測試,下面測試主要以“問天氣”為例子。
選擇 “weather” 對話的編輯按鈕,進入weather對話的編輯窗口,包括:
概念 |
描述 |
腳本 |
按照多輪對話語法規(guī)則來描述機器人對話邏輯 |
函數(shù) |
執(zhí)行JavaScript代碼的環(huán)境,聲明的接口可以直接從腳本中調用 |
日志 |
函數(shù)中debug方法的輸出 |
邏輯 |
聊天機器人的思維邏輯導圖,保存腳本后自動生成 |
對話 |
實時測試聊天機器人的窗口 |
在“對話”區(qū)域的下方輸入框輸入:
你知道哪些天氣信息
多輪對話編輯窗口
點擊“發(fā)送”按鈕,可以看到對話區(qū)域有了問答的信息流,并且“邏輯”區(qū)域也有了對話狀態(tài),對話路徑顯示“綠色”高亮。
測試對話
在此界面可以進行多輪對話測試,如下截圖:
多輪對話
增加新的對話
測試新對話
我:今天北京適合游玩么?
機器人:風清氣爽,當然可以啊~
在腳本區(qū)域可以自行設計腳本,非常簡單,例如增加:
+ 今天 (*) 適合游玩么?
- 風清氣爽,當然可以啊~
點擊界面上方“保存”按鈕,會使得剛才定義的對話生效,并且可以在聊天區(qū)域直接測試。
保存新版本
剛才點擊“保存”按鈕時,同時將weather的對話生成一個快照,我們隨時可以回退到某個快照。
查看快照
回到聊天機器人列表頁面,可以點擊“發(fā)布”按鈕,可以將當前聊天機器人生成新版本,相關的信息如圖:
發(fā)布新版本
點擊上圖的“確認”按鈕,發(fā)布新版本成功,點擊“版本管理”,看到剛才發(fā)布的1.0.1版本的信息。
各個版本之間比較
對于聊天機器人的發(fā)布的各個版本差異,可以使用版本比較工具,比較具體的差異,包括:腳本比較和函數(shù)比較。 點擊上圖1.0.1對應的“對比差異”,可以“對比變化”界面,其中分為三個部分,
- “左上”為被對比的參考版本;本例子為:1.0.0
- “右上”為要對比的目標版本,本例子為:1.0.1
- “下方”為兩版本數(shù)據的差異,具體:
* 綠色:新增的內容;
* 紅色:刪除的內容;
* 灰色:沒有變化的內容;
剛進入“對比變化”界面,默認對比的是:函數(shù),本例子請在選擇“版本號”的右邊切換“腳本”為“對話”,如圖:
版本之間比較差異
對比的差異部分為綠色,表示新增。
導出特定版本
多輪對話設計器屬于設計階段,在機器人滿足需求后,可以導出為對話應用.c66文件,方便分發(fā)和部署。在生產環(huán)境,導入到智能問答引擎中,作為多輪對話應用的運行時。
在“版本管理”界面,選擇剛才發(fā)布的“1.0.1”的“導出”,可以選擇一個路徑存儲該導出的文件,如圖:
導出文件
腳本語法
術語
在正式介紹腳本語法前,我們先來認識下面的術語:
概念 |
描述 |
對話 |
滿足設定需求的多輪對話 |
輸入 |
用戶向聊天機器人發(fā)送的消息的文字形式 |
觸發(fā)器 |
匹配用戶輸入文字的字符串,可以聲明槽位,當用戶的輸入發(fā)生時,會按照算法順序匹配觸發(fā)器 |
回復 |
機器人回復用戶輸入的文字 |
多輪對話 |
根據上一次回復的狀態(tài),聲明下輪對話的優(yōu)先匹配規(guī)則 |
函數(shù) |
可以從腳本中接受輸入,并通過JavaScript執(zhí)行任務返回結果的代碼 |
對話
觸發(fā)器
觸發(fā)器是對話的基礎,當用戶向聊天機器人發(fā)送一條消息時,機器人引擎會從所有定義的觸發(fā)器中找到匹配的一個。在機器人引擎中,觸發(fā)器用半角字符加號( + )表示。機器人的回答用半角字符減號( - )表示。
例如,我們可以這樣定義一個對話:
+ 晚飯吃什么
- 北京烤鴨
注意:這里( + )和( - )和文字之間需要隔一個空格。
槽位
為了讓觸發(fā)器能適應復雜的需求,機器人引擎使用槽位規(guī)則,槽位既能讓規(guī)則具有更好的匹配能力,也能讓回復和函數(shù)中使用不同槽位的值。
注意:下面的某些槽位左右?guī)в锌崭?,這些空格是必須的。
通用槽位
解釋示例:通用槽位
匹配:客服你好
匹配:你好
匹配:你好嗎
通用槽位會匹配零到無窮個字符、單詞。此處的輸入也會被系統(tǒng)捕獲或者存儲。
+ (*) 你好 (*)
- 歡迎光臨
確定長度槽位
解釋示例:確定長度槽位
匹配:早安北京
不匹配:早安烏魯木齊
如果你知道你想要的字符長度,可以試試確定長度槽位。此處的槽位可以被系統(tǒng)捕獲,而且可以在回答中使用
語法為:
*n, 其中n代表長度。
+ 早安 *2
- 早安
可控長度槽位
解釋示例:可控長度槽位
匹配:早安
匹配:早安北京
匹配:早安哈爾濱
匹配:早安烏魯木齊
不匹配:早安君士坦丁堡
如果只想匹配一些字符,可控長度的槽位是個不錯的選擇。語法為:
*~n, n代表你想匹配的最大長度
+ 早安 *~4
- 早安
區(qū)間槽位
解釋示例:區(qū)間槽位
匹配:早安北京
匹配:早安烏魯木齊
不匹配:早安
如果想匹配一個確定的區(qū)間,比如2到4個字符之間,區(qū)間槽位絕對可以滿足需要。語法為:
*(最短-最長),此槽位可以被系統(tǒng)捕獲和用在回復中。
+ 早安 *(2-4)
- 早安
必選項
解釋示例:必選項
匹配:早安北京
不匹配:早安西安
不匹配:早安
必選項用在你有一系列可選項,但是必須有一個被匹配。輸入中的可選項會被系統(tǒng)捕獲和用在回復中
+ 早安(北京|上海|天津)
- 早安
可選項
解釋示例:可選項
匹配:早安北京
匹配:早安美麗的北京
不匹配:早安熱鬧的北京
可選項用來確定一些額外的內容
+ 早安 [美麗的] 北京
- 早安
回復
在觸發(fā)器中,我們已經學到了怎么添加一個回答。事實上你可以添加任意數(shù)量的回答。這里還有一些高級功能可以幫助你完成更多的任務。
簡單形式
+ 在嗎
- 你好,在的
如果添加了多個回答,系統(tǒng)會從中隨機挑選一個作為回復, 然后丟掉這個回答。
+ 在嗎
- 親,在的
- 親,有什么需要幫助
- 你好,請問遇到什么問題了嗎?
所謂丟掉這個答案,是指機器人針對同一個用戶,在半個小時內再次匹配上該觸發(fā)器時,選擇回復時,不考慮使用過的回復。 在一個
觸發(fā)器中聲明多個回復后,保存,
邏輯中將出現(xiàn)分支。
機器人對話邏輯
如果不想讓系統(tǒng)丟掉使用過的回復,可以在回復前添加{keep}。
+ 在嗎
- {keep} 親,在的
- 親,有什么需要幫助
- 你好,請問遇到什么問題了嗎?
也可以在觸發(fā)器前添加
{keep},就不用在每個回答中都添加了
+ {keep} 在嗎
- 親,在的
- 親,有什么需要幫助
- 你好,請問遇到什么問題了嗎?
如果回答很長,可以通過“^”分割以方便可讀性??梢酝ㄟ^“\n”實現(xiàn)換行
+ 在嗎
- 你好,這里是客服中心,\n
^ 請問遇到什么問題了嗎?
它等價于
+ 在嗎
- 你好,這里是客服中心,請問遇到什么問題了嗎?
槽位取值
解釋示例:槽位取值
匹配:小明比小紅高
回答:你確定小明比小紅高嗎?
有些時候,在回答中需要使用輸入中的槽位值,這時可以使用達到目的。
+ 我是 *~3
- 你好,
如果用戶輸入,“我是張三”,那么系統(tǒng)將回復“你好,張三”,當有多個槽時,可以使用多個。
+ *2 比 *2 高
- 你確定比高嗎?
在對話中,我們有時候會需要以前的槽位值,看一下下面這個例子:
+ 我叫 *~3
- 你好,
+ 你猜我叫什么?
% 你好,
- 你剛說了,你叫
代表了以前的槽位。其中
N代表在在對話中之前的問答,
M代表捕獲的位移。
槽位取值
此處,還有一個重要語法:
%。(%) 開頭的句子代表觸發(fā)器“你猜我叫什么?”只服務于“你好,”作為回復時,它會被優(yōu)先匹配。上一輪對話的回復通過(%)的方式指定了接下來的邏輯,形成多輪對話。 關于(%)的用法,后文還會進行詳細介紹,此處,讀者只需要掌握從上下文的槽位取值便可。
另外,(+, %, -) 前的空格不是必須的,在多輪對話中,空格可以增強腳本的可讀性,但是系統(tǒng)是忽略的。
重定向 {@__reply__}
有些時候,在問答對中重用一些回復能使編寫腳本效率更高,這時可以定義一個問答對,并在腳本其它位置引用它。
+ 在嗎
- {@__greeting__} 請問有什么能幫助您?
+ __greeting__
- 親,在的。
- 你好,客服小美為您服務
- 親親,稍等,客服馬上就到
引用的方式就是 “{@觸發(fā)器}”,觸發(fā)器中的下劃線不是必須的,但是它能增強腳本的可讀性。
多輪對話
在實際應用中,和機器人聊天時,很可能要通過多輪對話完成一個任務。我們用(%)來定位之前回復,聲明新的觸發(fā)器,(%)后的內容是和某個回復內容一樣的字符串。
+ *
- 您身高多少
+ *(3-5)
% 您身高多少
- 我的身高也是
讓我們一起看看這個例子:
- 當用戶輸入任何文字,我們用通用槽位觸發(fā)回答,然后系統(tǒng)回復“您身高多少”。
- 當用戶繼續(xù)輸入時,系統(tǒng)會先從歷史中查看之前的回復中是否有對應的上下文,在這里指的是“% 您身高多少”
- 最后,如果用戶輸入3到5個字符,系統(tǒng)匹配觸發(fā)器“+ *(3-5)”, 并且回復“我也是”。“”代表的就是用戶輸入的內容。
函數(shù)
函數(shù)是一個強大而有趣的設計。在回復中,可以使用函數(shù)來獲取整條消息對象,用戶對象或者其它資源,比如數(shù)據庫。把槽位值當做變量傳給函數(shù),例如下面這個例子:
+ 我的用戶名是 *(2-10)
- ^getUserAccount()
所以,調用函數(shù)的方式就是使用“^”。在函數(shù)的編輯窗口中,可以這樣定義:
exports.getUserAccount(account, cb) {
cb(null, "對不起,系統(tǒng)沒有找到" + account);
}
函數(shù)的聲明中,參數(shù)列表首先是槽位的值,可以傳多個,然后最后一個參數(shù)始終是回調函數(shù)(cb),cb的參數(shù)列表為(error, text)。text作為文本添加到回復中。
復合函數(shù)
在回復中,可以添加任意多的函數(shù),比如
+ ...
- 聯(lián)合 ^callFunction1() 和 ^callFunction2()
嵌套函數(shù)
在函數(shù)的回調函數(shù)中,函數(shù)名會被解析成對應的函數(shù),所以放心的在回復中添加任意合法的函數(shù),比如在腳本中這樣寫:
+ ...
- ^nestedAFunction()
然后,在函數(shù)中,定義如下:
exports.nestedAFunction = function(cb) {
cb(null, "張三 ^nestedBFunction()");
}
exports.nestedBFunction = function(cb) {
cb(null, "和李四");
}
總結
以上是多輪對話設計器 v1.x 版本中支持的腳本語法,這些語法能夠保證業(yè)務人員實現(xiàn)滿足需求的聊天機器人,除了函數(shù)部分的有一點門檻外,其它內容是非常容易掌握的。對于函數(shù),只需要一點JavaScript基礎知識,就可以掌握。
示例應用
本節(jié)介紹使用多輪對話設計器實現(xiàn)一個“聊天機器人”的具體過程。我們以實現(xiàn)天氣問答機器人為例,我們選擇這個場景并不是因為它簡單,而是因為它容易理解,使用多輪對話設計器可以實現(xiàn)更復雜,更有價值的應用。我們先一睹為快,這個機器人是什么樣子的。
視頻:天氣查詢機器人Demo
是不是很實用?如果你掌握了多輪對話設計器,就可以實現(xiàn)聊天機器人。
需求分析
首先,我們需要梳理一下需求:
1) 我想知道任意城市的天氣信息,比如“今天上海天氣怎么樣”;
2) 我還比較關心空氣,我可以通過“今天上??諝庠趺礃?rdquo;獲得空氣質量信息;
3) 我想知道今天適不適合戶外運動,就問“今天上海適合運動么”;
4) 如果我問了一個城市的天氣狀況,我還想繼續(xù)詢問這個城市更多信息,這樣我不用每次都告訴機器人城市名稱。
當然,我的每個意圖都有多種表述方式,機器人能支持一些變化的問法。如果我的問題不夠嚴謹,機器人還應該提醒我合理的表達。
調研提供天氣信息查詢的API
現(xiàn)在很多服務以API的形式提供,從搜索引擎中查找“天氣查詢服務 API”,我們就能得到一些供應商,經過一些比較,我選擇了和風天氣,它數(shù)據豐富,免費額度大方。
和風天氣
AI音箱
Chatopera與杭州任你說科技達成戰(zhàn)略合作伙伴關系,所以,我們的對話系統(tǒng)產品與任你說音箱可以直接集成。
任你說官網
第一條規(guī)則
第一次打開多輪對話設計器后,我們看到如下的面板,我們稱之為主面板。
和風天氣
點擊新建按鈕,彈出創(chuàng)建機器人的表單:
創(chuàng)建聊天機器人
填入“小叮當”,當前多輪對話設計器支持中文(zh_CN)和英文(en_US),我們選擇“zh_CN”,點擊“確認”。然后我們就得到了一個聊天機器人。
聊天機器人
在操作中,有幾個按鈕:
- 管理:管理聊天機器人的多輪對話。
- 版本管理:管理不同版本的機器人,導出機器人和在不同版本之間進行比對。
- 環(huán)境變量:機器人函數(shù)中依賴的全局變量,這些變量在“設計對話”的階段和在IT人員“部署到生產環(huán)境”下的值是不同的,比如一些接口服務的認證鍵值對。
- 發(fā)布:發(fā)布當前機器人為最新版本。
- 刪除:將機器人刪除。
點擊“管理”,進入多輪對話管理頁面,點擊“新建對話”,在彈出的窗口中,填寫“對話名稱”為“weather”,點擊“確認”。這時,我們看到了新建的對話,我們將修改它的內容完成天氣對話服務。
創(chuàng)建對話
點擊“編輯”,進入
對話編輯窗口。在左側的“腳本區(qū)域”,寫下第一條規(guī)則。
+ 今天 (*) 天氣 [怎么樣]
- {keep} 天氣挺好的
點擊“保存”,這時右側的“邏輯區(qū)域”有了變化,出現(xiàn)了一個線條,在線條左右兩端分別是問題和答案。在“對話區(qū)域”,我們輸入“今天北京天氣怎么樣”,點擊發(fā)送,這時機器人回復了。
對話編輯窗口
從我們需求上看,這沒什么用,但是它工作了,我們就一點點優(yōu)化它。對于在這條規(guī)則中,我們使用的語法,(*)代表一個槽位,代表在回復中取槽位的值,[怎么樣]是可有的字符串,{keep}代表這條規(guī)則始終生效,keep涉及到對話的狀態(tài)管理,我們將在文檔中提供更多規(guī)則的描述,現(xiàn)在,讀者看懂本示例就可以了。
添加函數(shù)
在多輪對話設計器中,怎么請求和風天氣的數(shù)據呢?使用函數(shù)。函數(shù)是多輪對話支持的使用JavaScript實現(xiàn)的程序。
我們在“對話編輯窗口”點擊函數(shù),粘貼如下代碼:
var WForewast = function (apiKey) {
if (!apiKey) throw new Error('Invalid token, get it from http://www.heweather.com/my/service');
this.key = apiKey;
}
WForewast.prototype.getWeatherByCity = function (city) {
return new Promise((resolve, reject)=>{
let url = "https://free-api.heweather.com/v5/weather?city=" + encodeURIComponent(city) + "key=" + this.key
http
.get(url)
.then((res)=>{
resolve(res.data.HeWeather5[0].suggestion);
})
.catch(function (err) {
if (err) return reject(err);
});
})
}
const wf = new WForewast('182f1b6826d94c6285a489d2414f3ad0');
exports.getWeatherByCity = function(city, cb){
debug("getWeatherByCity: %s", city);
wf.getWeatherByCity(city)
.then((suggestions)=>{
cb(null, {
text: suggestions["comf"]["txt"]
})
}, (err)=>{
debug("error:%j", err)
cb(null, {
text: `很抱歉,沒有獲得${city}的天氣信息。`
})
})
}
exports.getAirByCity = function(city, cb){
debug("getAirByCity: %s", city);
wf.getWeatherByCity(city)
.then((suggestions)=>{
cb(null, {
text: suggestions["air"]["txt"]
})
}, (err)=>{
cb(null, {
text: `很抱歉,沒有獲得${city}的空氣信息。`
})
})
}
exports.getSportByCity = function(city, cb){
debug("getSportByCity: %s", city);
wf.getWeatherByCity(city)
.then((suggestions)=>{
cb(null, {
text: suggestions["sport"]["txt"]
})
}, (err)=>{
cb(null, {
text: `很抱歉,沒有獲得${city}的信息。`
})
})
}
exports.getDresscodeByCity = function(city, cb){
debug("getDresscodeByCity: %s", city);
wf.getWeatherByCity(city)
.then((suggestions)=>{
cb(null, {
text: suggestions["drsg"]["txt"]
})
}, (err)=>{
cb(null, {
text: `很抱歉,沒有獲得${city}的信息。`
})
})
}
在函數(shù)中,我們實現(xiàn)了根據城市請求天氣、空氣質量、著裝建議和運動建議的接口,分別是getWeatherByCity,getAirByCity,getDresscodeByCity和getSportByCity。
細心的讀者會發(fā)現(xiàn),在函數(shù)中,多輪對話設計器直接支持了http,debug作為工具類,發(fā)起網絡請求和輸出日志信息。這兩個接口極大的擴展了函數(shù)的能力,我們也會在函數(shù)中詳細描述它們的使用。
然后,回到“腳本區(qū)域”,修改一下規(guī)則,更新如下:
+ 今天 (*) 天氣 [怎么樣]
- {keep} ^getWeatherByCity()
在回復中,我們調用了getWeatherByCity,并且傳入了城市名稱。 接著,在“對話區(qū)域”,輸入“今天北京天氣怎么樣”,回復與上次不一樣了。
測試對話
這次,我們看到了期望的回復,正是從和風天氣返回的北京今天的天氣狀況。
使用環(huán)境變量
在上面的函數(shù)中,我們有一個敏感的信息:和風天氣的API密鑰。在實際應用中,我們希望設
計階段和
部署階段,它的值是不同的。這時,就需要使用
環(huán)境變量,環(huán)境變量正是為解決這個問題而設計的。
回到主面板,在“小叮當”操作中,點擊環(huán)境變量,創(chuàng)建如下鍵值對:
設置環(huán)境變量
讀者可以從和風天氣獲得該密鑰,為驗證用途,可以粘貼下面的值:
"HEWEATHER_URL": "https://free-api.heweather.com/v5",
"HEWEATHER_KEY": "182f1b6826d94c6285a489d2414f3ad0"
保存后,回到天氣對話腳本的“對話編輯窗口”,在函數(shù)中,使用下面的腳本:
var WForewast = function (apiKey) {
if (!apiKey) throw new Error('Invalid token, get it from http://www.heweather.com/my/service');
this.key = apiKey;
}
WForewast.prototype.getWeatherByCity = function (city) {
return new Promise((resolve, reject)=>{
let url = config["HEWEATHER_URL"] + "/weather?city=" + encodeURIComponent(city) + "key=" + this.key
http
.get(url)
.then((res)=>{
resolve(res.data.HeWeather5[0].suggestion);
})
.catch(function (err) {
if (err) return reject(err);
});
})
}
const wf = new WForewast(config["HEWEATHER_KEY"]);
exports.getWeatherByCity = function(city, cb){
debug("getWeatherByCity: %s", city);
wf.getWeatherByCity(city)
.then((suggestions)=>{
cb(null, {
text: suggestions["comf"]["txt"]
})
}, (err)=>{
debug("error:%j", err)
cb(null, {
text: `很抱歉,沒有獲得${city}的天氣信息。`
})
})
}
exports.getAirByCity = function(city, cb){
debug("getAirByCity: %s", city);
wf.getWeatherByCity(city)
.then((suggestions)=>{
cb(null, {
text: suggestions["air"]["txt"]
})
}, (err)=>{
cb(null, {
text: `很抱歉,沒有獲得${city}的空氣信息。`
})
})
}
exports.getSportByCity = function(city, cb){
debug("getSportByCity: %s", city);
wf.getWeatherByCity(city)
.then((suggestions)=>{
cb(null, {
text: suggestions["sport"]["txt"]
})
}, (err)=>{
cb(null, {
text: `很抱歉,沒有獲得${city}的信息。`
})
})
}
exports.getDresscodeByCity = function(city, cb){
debug("getDresscodeByCity: %s", city);
wf.getWeatherByCity(city)
.then((suggestions)=>{
cb(null, {
text: suggestions["drsg"]["txt"]
})
}, (err)=>{
cb(null, {
text: `很抱歉,沒有獲得${city}的信息。`
})
})
}
這次,代碼內容和前一版本相比,使用了config對象,config是一個包含環(huán)境變量的JSON數(shù)據。所以,我們更加利于將來部署對話應用了。
支持更多對話
回想我們需要的幾種天氣信息,我們根據需求變更腳本,一個滿足需求的腳本呈現(xiàn)如下:
// 技能介紹
+ 你知道哪些天氣信息
- 我知道今天的空氣,著裝建議和適不適合運動
// 天氣
+ 今天 (*) 天氣 [怎么樣]
- {keep} ^getWeatherByCity()
+ [今天] (天氣|氣候) [怎么樣]
- {@__wf_guide_}
+ (*) 今天天氣 [怎么樣]
- {keep} ^getWeatherByCity()
+ (*) 空氣 (*)
% ^getWeatherByCity()
- {keep} ^getAirByCity()
+ __wf_guide_
- {keep} 添加城市名哦,比如“今天北京天氣怎么樣”或者“北京天氣怎么樣”
- 我需要知道城市名稱,比如“今天北京天氣怎么樣”或者“北京天氣怎么樣”
- 要告訴我城市名,比如“今天北京天氣怎么樣”或者“北京天氣怎么樣”
// 空氣
+ [今天] 空氣 [怎么樣]
- {@__wf_guide_air}
+ (*) 今天空氣 [怎么樣]
- {keep} ^getAirByCity()
+ 今天 (*) 空氣 [怎么樣]
- {keep} ^getAirByCity()
+ __wf_guide_air
- {keep} 添加城市名哦,比如“今天北京空氣怎么樣”或者“北京空氣怎么樣”
- 我需要知道城市名稱,比如“今天北京空氣怎么樣”或者“北京空氣怎么樣”
- 要告訴我城市名,比如“今天北京空氣怎么樣”或者“北京空氣怎么樣”
// 運動
+ [今天] 適(合|宜)運動(么|嗎)
- {@__wf_guide_sport}
+ (*) 今天適(合|宜)運動(么|嗎)
- {keep} ^getSportByCity()
+ 今天 (*) 適(合|宜)運動(么|嗎)
- {keep} ^getSportByCity()
+ __wf_guide_sport
- {keep} 添加城市名哦,比如“今天北京適合運動么”或者“北京今天適合運動么”
- 我需要知道城市名稱,比如“今天北京適合運動么”或者“北京今天適合運動么”
- 要告訴我城市名,比如“今天北京適合運動么”或者“北京今天適合運動么”
// 衣著
+ [今天] 適(合|宜)穿什么
- {@__wf_guide_dresscode}
+ (*) 今天適(合|宜)穿什么
- {keep} ^getDresscodeByCity()
+ [今天] (*) 適(合|宜)穿什么
- {keep} ^getDresscodeByCity()
+ __wf_guide_dresscode
- {keep} 添加城市名哦,比如“今天北京適合穿什么”或者“北京今天適合穿什么”
- 我需要知道城市名稱,比如“今天北京適合穿什么”或者“北京今天適合穿什么”
- 要告訴我城市名,比如“今天北京適合穿什么”或者“北京今天適合穿什么”
這也就是我們在天氣查詢機器人Demo中看到的機器人的腳本,在設計過程中,我們通過對話區(qū)域來測試機器人的回復是否符合預期,我們通過邏輯窗口來查看當前機器人的思維邏輯導圖,當前機器人對話的狀態(tài)會被高量,被命中的規(guī)則呈現(xiàn)為路徑。
機器人思維邏輯
另外,在設計過程中,每次保存自動為腳本和函數(shù)生成快照,使用快照下拉列表,我們能方便的回退。
快照管理
在
多輪對話設計器中,業(yè)務人員可以更專注于對話機器人的對話邏輯滿足需求。
發(fā)布機器人
現(xiàn)在,有了可以工作的腳本,我們想發(fā)布一個版本,這時回到主面板,點擊“發(fā)布”,填入如下信息,點擊“確認”。
發(fā)布機器人導出機器人
最終,我們需要得到一個“服務”,它能時刻被訪問,以及和AI音箱集成。我們需要將天氣機器人導出為對話應用,然后部署到智能問答引擎。在主面板,點擊
版本管理,我們看到操作中有三項。
- 對比差異:在多個版本中比較差異,包括腳本和函數(shù)。
- 導出:將機器人導出為對話應用文件。
- 覆蓋:使用這個版本覆蓋當前機器人,包括腳本和函數(shù)等。
多輪對話設計器支持導出機器人后,極大的方便了分發(fā)和部署。
標簽:涼山
澳門
包頭
營口
襄陽
平頂山
那曲
河源
巨人網絡通訊聲明:本文標題《Chatopera多輪對話設計器》,本文關鍵詞 Chatopera,多輪,對話,設計,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。