Line bot 開發狀況





 實做了一些平常會用到的功能,有即時訊息通知平台,互動上更加直覺了。

原本我也期待透過一些語意分析的工具,了解語意後再進行處理,但是經過自己使用習慣上的分析,其實用選單方式表達需求更加明確,使用語意分析工具,建立 pattern、分析 intent,偏離了原始的目的。
這改變讓我不需要為了使用工具,還要輸入自己設計的關鍵字來觸發聊天機器人功能。

透過其他 api 提供的功能實做就不提了,花最多時間的是在聊天互動的操作,在聊天室裡每一個訊息都是獨立的發送著,隨著思緒及關卡會產生下一個對話結果,那在程式設計上要怎麼把好幾個訊息組成一個清楚可執行的指令呢?在我設計的對話路徑上,先表達主要目的,例如我要把youtube影像轉成音樂檔,接著 bot 問第一個問題,請輸入youtube 影像網址,依使用者輸入的內容,決定是否可開啟下一個對話,即資料的檢核,檢核成功則進入下一個對話,檢核失敗則可以跳出該對話,或是重新輸入上一個需求內容;直到最後一個問題的答案收集完畢後,再依據這些問題的答案產生結果,回報使用者。

先決定要執行的功能選項 -> 下一個問題 -> 下一個問題 -> 下一個問題 ... -> 產生結果

這裡我們把"問題"用 intent 這個詞來表達。
上面這個循序圖,每一個階段都是獨立的,只是前一個 intent 仰賴的資料都需要透過其他的方式得到資料,聊天機器人就是透過對話,得到需要的資訊。
資料結構使用 stack,每一個 intent 的生命週期是 啟動對話 -> 檢核答案 -> 續問下一個 intent -> 產生結果
在 續問下一個 intent 的這個階段會堆疊到 stack 裡,最後 intent 問完了,再把 intent 一個一個 pop 出來產生結果。

在 user session 的處理上,使用 redis 紀錄單一使用者的對話過程 (redis 是好物呀!)
 


留言

這個網誌中的熱門文章

[IIS] 自我簽署憑證來啟用SSL

相見恨晚的自動化測試開發工具 Sikuli

sqlplus 中文亂碼解決方案