跳至主要内容

案例研究 - 情境判斷客服

建立情境判斷客服

AI 的協助能夠提高服務的效率,但是還是很難避免客戶濫用 AI 的服務。為了能夠讓 AI Bot 有效的了解客戶提出的問題,並能將客戶的問題限縮在範例中飯店業的服務範圍內,接下來的範例會逐步建立一個情境判斷的客服,並確認客戶所提問的問題情境有落在服務的範圍內,這會是一個很有用的情境判斷設計技巧。

接下來的步驟會依序建立下方列出的 Processors,讓AI協助我們判斷客戶的問題:

Step 1:建立新的 Bot

選擇 Project 進到該 Project 的 Collections 頁面,點擊右上方「Create New」選擇 Bot 類型建立,輸入名稱與描述建立後,可以在 Bot 分頁看到剛剛新建的 Bot。

點擊進入 workflow sets 頁面,可以看到 Asgard 已經預設幫您建好了初始的 workflow。

點擊該 workflow 進入 workflow 工作區,此處 Asgard 已經預設幫您建好了初始的工作流程起點。

Step 2:Update Context

新增一個 Update Context 的 Processor 來幫助我們識別歷史對話訊息的起始。

  • 屬性點擊「+」新增一個空白的變數
  • 命名為 historyStart
  • Type 請選 Literal 並設定初始值為 0
  • 儲存設定

Step 3:Push Message

新增一個訊息來歡迎用戶,可以單純的使用文字訊息,或是搭配Message Template的 quickReplies 來節省用戶打字的時間,將常見的問題列為選項讓用戶方便選取。

  • Message 選擇 Literal 的類型並輸入文字訊息例如「Welcome...」
  • Template 選擇 Expression 的類型,並輸入底下範例
  • Optional: 可以將 ProcessorDescription 改成容易識別的描述幫助工作流程的編排易讀性,例如改成「顯示歡迎詞」
  • 儲存設定
{
"quickReplies": [
{
"text": "我要如何升級我的會員資格?",
},
{
"text": "我的點數可以做什麼?"
},
{
"text": "兌換券在哪裡兌換?"
}
]
}

Step 4:Listen Message

新增一個 Listen Message 用以存放用戶輸入的訊息。

Step 5:LLM & Push Message

LLM 呼叫LLM來判斷用戶輸入的問題。

  • Completion Model 選擇已經設定好的大型語言模型,或是可以點擊「Add」以新增 Completion Model 設定。
  • Prompt 選擇 Template(Advance) 並輸入以下範例請求AI:
你是情境判斷助手,負責判斷使用者目前是不是想詢問一些關於飯店的客服問題,例如住宿、飯店APP操作、點數兌換、會員資格等問題皆屬於客服問題的範圍。

* 這是你跟使用者的對話紀錄:
```
{{{history historyStart -1}}}
```

history為 Asgard 內建函數,historyStart 為 Step 2:Update Context 時在 Update Context 裡所新增的變數,-1 是指算到上一個對話為止,因此這裡是在告訴 LLM 用戶的歷史對話紀錄是從 historyStart 到上一個對話,也就是 Step 4:Listen MessageListen Message 用戶輸入的問題。

  • Output Schema 規範 AI 輸出結構化資料的格式,新增一個布林值的欄位「isCustomerSupport」來判斷是否為客服問題,並加上 description 方便識別,範例中「true 表示使用者正在詢問關於客服的問題」,反之亦然。
{
"type": "object",
"properties": {
"isCustomerSupport": {
"type": "boolean",
"description": "true 表示使用者正在詢問關於客服的問題"
}
},
"required": [
"isCustomerSupport"
]
}
備註

詳細JSON Schema寫法,請參考JSON Schema

  • MaxTokens 設定消耗 Token 上限,此處選擇 Literal 類型並填入 4096 。Token 上限請依據選用的模型支援的範圍去設定,此處僅為範例。
  • 儲存設定

Push Message ,LLM 調用外部 AI model,通常會有調用成功與失敗兩種情況,當 Success 成立,就接到下一步的 Router 處理,當 Fail 時,可以加上 Push Message 來提示用戶。

當LLM Completion調用條件結果為FALUITRE:

  • Message 選擇 Literal 的類型並輸入文字訊息例如「系統忙碌中...」
  • Optional: 可以將 ProcessorDescription 改成容易識別的描述幫助工作流程的編排易讀性,例如改成「表示流量控管中」
  • 儲存設定

Step 6:Router & Push Message

Router 新增一個Router依據If, Else等條件來決定工作流程執行的路徑。

  • 新增Case 1 條件名稱可以自訂,此處改成「是客服」來幫助識別。選擇Expression並輸入以下範例:
isCustomerSupport

isCustomerSupport 是我們在 LLM Processor 設定時,請求 AI 協助判斷的一個 object,假如為 TRUE 代表 AI 判斷為客服情境,假如為 FALSE 則不是客服情境。

Push MessageRouter 出來的兩個條件 TRUEFALSE,請分別加上 Push Message 來協助判斷目前為止的工作流程編排是正確的。

當Router條件結果為TRUE:

  • Message 選擇 Literal 的類型並輸入文字訊息例如「是客服...」
  • Optional: 可以將 ProcessorDescription 改成容易識別的描述幫助工作流程的編排易讀性,例如改成「是客服情境」
  • 儲存設定

當Router條件結果為ELSE:

  • Message 選擇 Literal 的類型並輸入文字訊息例如「非客服」
  • 儲存設定
  • Optional: 可以將 ProcessorDescription 改成容易識別的描述幫助工作流程的編排易讀性,例如改成「非客服情境」

Step 7:預覽 Bot

點擊 Preview 來預覽剛剛編排好的工作流程,若執行成功應可順利看到以下飯店 QA 的 Bot。接著就可以測試 AI 是否能正常判斷用戶的問題為客服問題或非客服問題。

測試

測試一:是客服情境

點擊 quickReplies 的問題比如「我的點數可以做什麼?」,由於此處設定的都是在客服的範圍內,因此 AI 應該要能判斷為是客服情境。

測試二:非客服情境

任意輸入其他與客服不相關的問題,比如「天氣如何?」AI 應能正常判斷為非客服情境。