智能客服架構


智能客服系統的實現多種多樣,跟所服務的場景有關,本文總結了一種簡單的實現,只保留了最核心的組件,來講解如何實現一個對話系統的搭建。

Intent & Slot

一個用戶的query進來後,首先要進行意圖和實體抽取,意圖分類用於判斷用戶的目的,比如是詢問怎樣下載APP還是詢問課程價格,至於詢問的是哪個App或者哪個課程,是通過實體抽取來進行的。有了意圖和實體信息後,就可以通過一個狀態機獲取回覆了。

DST(Dialogue State Tracing)

DST就是一個有限狀態機,定義了在已有狀態+某個輸入狀態下,給出輸出+跳轉到的狀態,可以通過一個簡單的規則引擎實現,例如可以定義如下的規則格式:

$$輸入狀態 & 已有前置條件$$需要不滿足的條件$$輸出內容 & 執行動作$$跳轉到的狀態$$規則優先級

該規則可以描述爲:

if (輸入狀態 & 已有前置條件) and not (需要不滿足的條件):
    do 輸出內容 & 執行動作
    do 跳轉到的狀態

然後實現一個規則引擎來解析該規則即可。用戶的query連同標註id、當前會話狀態等信息傳入狀態機,狀態機匹配成功的情況下返回輸出給用戶的回覆內容,並在後臺執行相應的動作,比如更新用戶的會話狀態,以及將有價值的信息更新到CRM系統。一般在DST中添加的規則主要是任務導向的,就是說一些明確的需要完成的任務相關的話術需要在DST進行配置,比如用戶詢問如何下載APP,引導用戶輸入姓名手機號,引導用戶填寫調查問卷等。其他內容比如一些日常聊天相關的內容,或是一些常見的問題回覆則放在FAQ裏完成。

FAQ

FAQ用於回覆一些常見的問題,包括一些日常閒聊的內容,不指向特定用戶,屬於通用回覆。這裏常用的方法是問題相似度匹配,如常見的雙塔模型+faiss向量召回,同時也需要添加一個規則引擎來處理一些高頻或易出錯的問題。如果FAQ無法獲取置信度高的回覆,可以轉人工。

在線配置平臺

在Intent & Slot、DST、FAQ裏都設計到規則引擎的使用,裏面的規則需要有動態下發的能力,所以需要有一個在線規則配置平臺能實時對規則進行增刪改查,這是一個工程問題,需要靈活設計。

定時任務

定時任務模塊用於在設定的時間點出發某些動作的執行,比如定期提醒用戶上課,定期問候用戶等,該模塊可以藉助消息隊列(MQ)實現。

總結

以上就是一個對話系統的核心實現,這個系統可以進行擴展,比如加入分單系統,評價系統等,這些根據需要擴展即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章