上篇談到增加了第三方閑聊的功能南用,避免了對話的時候遇到能識別意圖之外的問題而回答“不好意思膀钠,我聽不懂”這樣的默認設(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的詳細用法旭贬,而我們做的改進是單選和多選的問題。在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/events
post的接口。業(yè)務(wù)中我們允許用戶返回去修改按鈕操作艰赞,但是只能允許最近的一個佣谐。所以在每次修改的時候需要調(diào)用一下新增的接口push一個undo操作,這樣的話對話才不會亂方妖。
emmm狭魂,有點像流水賬,主要想講的就是多看看rasa-core的http-api文檔党觅,里面提供了不少直接修改意圖和槽的方法雌澄,在項目優(yōu)化的時候有很大幫助。
這一系列的文章就寫到這兒吧仔役,后續(xù)要在知識圖譜這塊花時間掷伙,等有點收獲再寫點圖譜的學習心得吧。原創(chuàng)文章又兵,轉(zhuǎn)載請說明出處