上篇談到增加了第三方閑聊的功能,避免了對話的時候遇到能識別意圖之外的問題而回答“不好意思,我聽不懂”這樣的默認(rèn)設(shè)置回答。最近在優(yōu)化方面又增加了button的功能。效果如下:

這樣做的原因是在優(yōu)化識別名字、年齡、職業(yè)的時候總會有些問題,后面干脆做成button讓用戶選擇和輸入,意圖和槽都很明確,這樣用戶體驗方面會更好(最主要的是老板喜歡這個交互,我咋感覺越做越像平安醫(yī)生的交互方式的,(⊙o⊙)…)。
界面方面是前端的工作,這里不做過多說明。這篇要說的是作為接口提供方的我們,如何在rasa-core這個框架上實現(xiàn)前端需要的數(shù)據(jù)。其實rasa-core提供了很多http-api的接口,現(xiàn)有的需求幾乎全部實現(xiàn),不需要你重復(fù)造輪子。
這里有button的詳細(xì)用法,而我們做的改進(jìn)是單選和多選的問題。在domain.yml文件中:
utter_ask_gender:
- text: "請選擇患者性別:"
buttons:
- mulplity: "0"
intent: 'enter_data'
- title: "男"
prop: 'slots'
payload: '{"gender": "男"}'
- title: "女"
prop: 'slots'
payload: '{"gender": "女"}'
- title: "保密"
prop: 'intent'
payload: 'deny'
我們加了mulplity這個字段來告訴前端是否是單選,以及前端需要自己拼接/intent{payload}傳遞給接口,這樣意圖和槽就十分明確。
汗~~
說了一通,好像沒什么技術(shù)含量。
后面還增加了/conversations/{id}/tracker/eventspost的接口。業(yè)務(wù)中我們允許用戶返回去修改按鈕操作,但是只能允許最近的一個。所以在每次修改的時候需要調(diào)用一下新增的接口push一個undo操作,這樣的話對話才不會亂。
emmm,有點像流水賬,主要想講的就是多看看rasa-core的http-api文檔,里面提供了不少直接修改意圖和槽的方法,在項目優(yōu)化的時候有很大幫助。
這一系列的文章就寫到這兒吧,后續(xù)要在知識圖譜這塊花時間,等有點收獲再寫點圖譜的學(xué)習(xí)心得吧。原創(chuàng)文章,轉(zhuǎn)載請說明出處