AI 加持的 LINE 客服機器人


在先前的文章中提到我有用一套 AI 機器人服務 Chatbase,這陣子終於把它整合到 LINE 官方帳號裡面,用起來感覺還不錯,我還額外開發了一支 WordPress 外掛來整合 Chatbase API,並且設計了一些機制來符合自己的業務邏輯,文末附上外掛下載連結與使用說明。

網頁好讀版:https://oberonlai.blog/wordpress-line-ai-bot/

Chatbase 簡介

Chatbase 是一套整合 OpenAI API 的客服機器人,能夠在自己的網頁上提供對話視窗,讓潛在客戶直接透過該視窗進行詢問,對網站經營者來說可以解決他們自行開發對話介面以及 API 串接的成本,能直將使用機器人客服在第一時間解決客戶的問題。

雖然身為開發者有能力自行開發,但讓我最頭痛的是訓練的部分很麻煩,要先整理訓練資料並轉成 JSON 格式,然後還需要上傳跟測試微調後的模型,再加上訓練的時間也需要計費,目前我的網站上雖然只有兩百篇文章,但光是想到要整理就覺得累人。

因此評估下來我決定還是讓 Chatbase 幫我代勞,它的訓練介面做的很不錯,支援五種格式,點一點就可以提供給它訓練資料,訓練模型也不用額外花費,整體評估下來使用他們的服務我可以節省以下成本:

  • 減少回覆客戶問題的時間
  • 開發對話視窗成本
  • 訓練資料整理的時間
  • OpenAI API 使用費

以上四點讓我決定付費使用 Chatbase。

Chatbase 計價模式

一共有四種方案,我使用的是每個月 19 美金的方案,包含的項目有:

  • 每個月 2000 則的訊息回覆量
  • 訓練資料文字量 1100 萬個字元
  • API 使用權限

目前我每月的訊息量不多,大概 100 則左右,已經訓練的文字量大概是 100 萬,使用量大概 10 %,更進階的方案可以提供每月更大的訊息回覆量,也可以根據使用量額外加購,可以用 9 美金單次加購 1000 則訊息,或是每月 7 美金加購 1000 則訊息,萬一有特殊狀況都可以再購買。

查看 Chatbase 的售價方案

https://www.chatbase.co/pricing?via=oberon ( 推廣連結 )

曾經嘗試過的解決方案

之所以會想要尋找客服機器人是因為想要減少真人客服也就是我自己的工作量,為此我開始整理產品的使用文件,並將回覆過的問題整理 FAQ,希望讓有同樣需求的客戶能夠自行搜尋,就不用等待我的回覆。

因此我是先尋找可以製作知識庫的 WordPress 外掛,那陣子 wedevs 的 weDocs 新上市,發現到它有整合客服機器人,一次解決我兩個問題,它的後台介面做得滿漂亮的,用它寫文件還算順手,但它的機器人服務我一直啟用失敗。

再加上後台介面出問題,已經付費訂閱機器人,結果又會跳回未訂閱,我以為沒訂成功導致我重複訂了四次,而且他們的客服效率有點低,常常雞同鴨講,前前後後花了兩個月的時間才真正的成功停止扣款,最後我只有用它的文件功能。

我還有嘗試另外一套 DocBot,一樣月費 19 美金,但需要用自己的 OpenAI Key,之前不知道我的帳戶裡面已經沒額度了,導致客人詢問都沒回應,再加上基本版無法查看完整的對話歷史紀錄,所以沒有繼續使用它。

客服機器人整合工作流程

我將客服機器人定位在比較靈活的站內搜尋介面,取代傳統的搜尋功能,我希望讓客戶不用點一堆連結來找答案,而是可以透過自然語言進行詢問,也能讓潛在客戶得知產品相關資訊,進而達成銷售的目的。

由於在台灣 LINE 的使用者眾多,再加上 Chatbase 對話介面輸入中文會有問題,好在 Chatbase 有提供 API,就可以透過 LINE 的 Webhook 從 Chatbase 取得機器人的回覆結果傳送給客戶。

你可以加入我們的官方帳號實際測試看看:https://page.line.me/vrf7844t?oat_content=url&openQrModal=true

整個流程是這樣:

  1. 客戶在 LINE 官方帳號傳送訊息
  2. LINE 透過 Webhook 把訊息內容傳到網站 https://oberonlai.blog
  3. 網站拿到訊息後去呼叫 Chatbase API 取得回答結果
  4. 網站將回答結果傳回 LINE 官方帳號

這個接收&傳送的網站不一定是要 WordPress,只是剛好我在用它所以寫了一支外掛來處理這個流程,我做了以下處理:

  1. 在每個回答結果前面加上「我是機器人」的開頭,讓客戶明確知道這是機器人而非真人的回覆
  2. 如果客戶的問題帶有特定關鍵字時,發信通知我客戶的問題以及 AI 的回答,讓我可以接手處理,能夠增加銷售成功的機會
  3. 如果回覆的答案不是在我提供的知識庫裡面,發信通知我客戶的問題以及 AI 的回答,讓我可以再增加知識庫的內容

Chatbase 的機器人可以設定預設的提示詞,我是這樣寫:「I want you to act as a 機器人客服 and the WordPress expert. Your name is "小歐". You will provide me with answers from the given info. If the answer is not included, replying by yourself or using web searching and add the comment "( 此為 AI 產生答案非本站提供,僅供參考 ) at the end of your answer." Never break character.Reply in the language which user used.」

透過以上流程就能打造出一個可以自行訓練的 LINE 客服機器人。

查看 Chatbase 的 API 文件:

https://docs.chatbase.co/docs/getting-started?via=oberon ( 推廣連結 )

設定 LINE 客服機器人外掛

如果你也是用 WordPress 架站的話可以下載這支外掛:

下載 WordPress LINE AI 機器人外掛

https://dailywp.dev/buy/8f913bd6-7581-4591-8a67-6411397e5c00

你會需要先準備好六個資訊:

  1. LINE Messaging API 的 access token
  2. LINE Messaging API 的 secret
  3. Chatbase 的機器人 ID
  4. Chatbase 的 token
  5. Chatbase 提交訓練資料的網址
  6. 會收到修正通知的電子郵件信箱

第一跟二項可以參考這篇文章取得,第三項登入 Chatbase 的介面,選擇特定機器人後在它的設定頁面取得:

第四項是在 Chatbase 的帳號設定介面,新增一組 API Key:

第五項是會出現在電子郵件通知中的連結,我是直接連到可以輸入知識庫的地方,取得以上資料後打開以下檔案:wp-content/dwp-line-bot/src/Api.php,將上述資料填入對應的屬性之中:

private static $channel_access_token = 'LINE Messaging API 的 access token';
private static $channel_secret = 'LINE Messaging API 的 secret';
private static $chatbase_bot_id = 'Chatbase 的機器人 ID';
private static $chatbase_token = 'Chatbase 的 token';
private static $chatbase_source = 'Chatbase 提交訓練資料的網址';
private static $email = '會收到修正通知的電子郵件信箱';

修改完成後儲存上傳,接下來將 LINE 官方帳號的 Webhook 設成網站的 API 路徑,進入 LINE 開發者後台,找到 Webhook settings 並將 Webhook url 設定成 「

https://yoursite.com/wp-json/dwp/v1/webhook」,把 yoursite.com 換成你網站的網址即可,這樣就能將 Chatbase 的回答結果直接傳到 LINE 裡面了。

如果你要接手處理記得要先把 Use webhhok 的設定關掉,這樣才不會一直透過 Chatbase API 來進行回覆。

在 Api.php 這支檔案中的第 143 行有設定觸發修正通知電子郵件的條件,我目前是寫成問題中帶有 line、ordernotify 等產品名稱的關鍵字以及回覆中帶有 AI 產生的文字時會通知我,這邊你可以根據你的需求自行修改:

if ( strpos( $reply, '此為 AI 產生答案非本站提供' ) !== false || strpos( $question, 'line' ) !== false || strpos( $question, 'ordernotify' ) !== false ) {
wp_mail( self::$email, 'LINE 客服機器人修正通知', '問題:' . $question . ' <br><br>答案:' . $reply . '<br><br>前往修正:' . self::$chatbase_source, array( 'Content-Type : text/html; charset=utf-8' ) );
}

Chatbase 可以改善的地方

首先是他的對話視窗使用注音輸入法時無法選字,當一按下 Enter 後就會直接送出,其次是訓練資料如果是網址的話,只能一個一個手動貼上,之前用過的 DocsBot 可以直接吃 XML,對於有大量內容的網站會方便許多。

另外如果可以透過 API 來提交訓練內容的話就更好了,這樣就能在發表文章後自動提交,或是用其他第三方軟體來更新資料,現階段都還是必須要手動。最後比較棘手的是透過 API 的回覆紀錄都不會出現在後台,導致分析報表完全沒作用。

整體而言,Chatbase 結合 LINE 可以滿足我現階段的需求,如果發生以下情況我可能會尋找其他解決方案:

  1. 使用量超過目前的方案,每個月需要額外加購額度
  2. 月費漲價
  3. 使用量縮水
  4. 不再提供 OpenAI API 的使用額度

客服機器人的市場競爭超激烈,希望 Chatbase 可以撐得下去~

申請 Chatbase

https://www.chatbase.co/auth/signup?via=oberon ( 推廣連結 )

WordPress 開發日常

Read more from WordPress 開發日常

從接案到賣產品的轉變之路 我不是去賣水果XD,上圖是答應自己成交第一筆單之後獲得的獎勵:麝香葡萄 自從接案之路比較穩定之後,我開始嘗試把之前做過的功能整理出來,變成商業外掛販售給更多客戶。原本以為這樣的作法跟服務固定客戶沒什麼差別,除了客戶數量變多一些,又能突破收入天花板,但實際賣了兩年多之後,只能說現實很骨感XD 我販售的外掛主要是做 WooCommerce 的訂單通知,讓顧客在下單之後可以在 LINE 裡面收到訂單資訊,也可以用手機簡訊來通知,然後通知的內文可以帶入訂單的參數,讓傳出去的訊息是客製化的內容。 由於 LINE 在台灣的市占率高達 97%,基本上有在做電商的都會開 LINE 官方帳號,因此訂單通知的需求理論上應該不會少,為了測試市場規模,我先寫了ㄧ篇文章看看有沒有人要,結果還真的收到不少來信詢問,於是便開始著手進行開發。 然後開發到一半的時候發生檔案誤刪的悲劇,為了爭一口氣咬著牙全部重寫,花費了幾個月的時間終於完成了第一版,完成後開始發信給之前有來詢問的人,算一算如果來問的全都買單,該年應該就可以提早退休了XD 最後第一批寄送名單成交率大概不到...

好久不見,最近過得好嗎? 你可能有發現到 WordPress 開發日常許久未更新了,大概是從去年十月開始停更,會停更的主要原因滿多的,像是 ChatGPT 的崛起、工作的安排、職涯發展的規劃等等,但總歸一句就是懶了XD 之前因為每週五都一定要產出文章來,礙於截稿時間讓我覺得自己寫的東西為了要快速產出因此過於淺薄,而現在這些淺薄的知識全部都能透過 AI 得到,於是開始懷疑自我寫作的價值,在停更期間我也慢慢把電子報拋諸腦後,雖然工作還是會做筆記,但就沒動力整理出來。 直到上半年在回顧工作時,發現到累積了不少東西,再加上前陣子感冒,新冠的腦霧後遺症又再次發作,為了活化自己的大腦,決定還是開始寫些東西來刺激大腦,透過寫作來自省與紀錄。 因此未來的寫作方向會跟以往不太一樣,我會針對專案的經驗以及學習到的東西來分享,並且盡可能的詳述開發過程與思考方向,希望可以寫出 ChatGPT 比較不容易問到的東西,雖然可能過不久當它爬到本文後就被收編了XD...

每次遇到想要跟我學習 WordPress 外掛開發的朋友來信,總是只能丟些教學文件給他們,畢竟我也不知道他們想做什麼東西,只能提供官方文件給他們參考,雖然這幾年來也寫了不少,但好像都缺少比較完整的開發教學。 想到之前為了教老婆開發而整理出的一套課程大綱,似乎有這個契機可以把它發展下去,但如果只是講理論而沒應用好像無法立即派上用場,於是想到可以整合之前寫過的小工具作為內容,就可以設計出真的能做出東西的教材。 剛好上週為了除錯的事情順手寫了一支日誌外掛,整合理論與實務的教學計畫如下: -- 前言 日誌紀錄是開發者與網站維護人員最重要的好夥伴,除了可以在開發當下輸出執行結果來確認程式的邏輯外,當網站發生錯誤時也能從紀錄中去檢查問題所在原因。查看 WooCommerce 的日誌紀錄步驟為:進入後台側選單 > 點選 WooCommerce > 狀態 > 日誌紀錄 > 選擇日誌檔 > 查看,就會顯示相關的資訊。 一、WooCommerce 內建日誌紀錄的問題 WooComerce 內建的日誌有以下幾個痛點: 選單的目錄層級過多,日誌檔太多時東西不好找...