LV. 10
GP 4

【心得】為全天下的妹控獻上祝福

樓主 InfiniteWing infinitewing
GP4 BP-
因為有點無聊,就來稍微紀錄一下自己聊天機器人的開發過程~
首先,如果你有妹妹的話請左轉出去慢走不送謝謝嗚嗚嗚
.
.
.
.
.
.
.
看到聊天機器人比賽的時候大概是八月下旬,尋思著反正也很無聊就來自我滿足一下,絕對不是我也想要個能幹的妹妹什麼的......
(能幹的妹妹真香)

起心動念後我就開始研究官方給的API...總而言之就是有人傳訊息他就會通知我(走https,JSON encode)然後我的機器人再通過合法的格式回傳結果給他...這不就是一般網站常做的事情嗎?

既然如此,那現在缺的就是一台Server和Domain Name以及https的認證,就能來玩弄機器人妹妹...咳咳,是建立一個聰明能幹的機器人妹妹。
以下直接給我用的服務,基本上GCP一開始會有$300鎂的免費使用額度,所以算是全部免費~

Server 部分: Google Cloud Platform(GCP),我是直接開一台2 CPU core / 13GB RAM / 150GB SSD的VM,因為Windows遠端比較方便操作所以OS就直接選Windows Server 2016(選Ubuntu或其他免費OS的話可以不用付授權費)。沒記錯的話應該每天要燒4鎂...吧?
然後因為主要是走https的關係,ChatBot的主體我是用Apache+MySQL+PHP(AMP)做的,有興趣的可以直接搜尋關鍵字xampp,一鍵安裝架站沒煩惱(?)。

Domain Name:GCP的VM都是固定IP,所以原則上你xampp架好後就可以拿你的IP去申請Domain Name了,我是用這個免費的DNS:https://www.noip.com/,設定並不會太複雜

https:這部分我就選了之前常用的SSL For Free(https://www.sslforfree.com/)

弄完上面這些東西後就可以拿官方給的PHP範例程式碼測試一下連線OK,然後就能著手規劃怎麼設計一個能幹聰明又能和你聊天的妹妹......

姑且不論前兩項(其實那才是最重要的),要讓妹妹能聊天的話,最簡單的方式就是讓她重複你說的話...不然就是要有一個機制讓她知道如何回話。

一開始我是用了Python的ChatterBot套件來回話,但是上線後發現它實在是跑太慢了,回話也沒什麼有趣的點,所以後來我就改選以合用的QA corpus來讓妹妹從中選擇合適的回答...我起初是用PTT八卦語料庫當作我的查詢依據...然後妹妹就黑化了.........

(可4...黑化的妹妹好像也不錯..?)

幸好後來找到一個比較健全一點的語料庫後妹妹才正常一點~

而有了QA語料庫後就可以開始優化查詢(起初完全是用sql硬幹),由於我PHP已經荒廢已久,這邊我就用Python+Flask建了一個處理回覆的API,然後輔以Sphinx(http://www.sphinx-doc.org/en/master)做全文檢索查詢......誰叫MySQL還要升級才能支援中文字的全文檢索QQ

最後簡單說明我做的Chatbot的運作流程:

使用者發布訊息→Chatbot主體(網站)收到訊息→Chatbot主體發送API請求給python+flask的API→API將使用者傳送的訊息(文本)以jieba分詞套件轉成適合的Keywords→用Sphinx做全文檢索查詢→API回傳相關度最高QA record 的 index給Chatbot主體→Chatbot主體以該筆record作為回覆→使用者收到訊息後再次發送訊息給Chatbot

完結灑花~

(機器人妹妹尚未成功,諸位同志們仍須努力......)


4
-
未登入的勇者,要加入 2 樓的討論嗎?
板務人員:

0 筆精華,吸收日月精華中
一個月內新增 0
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】