建立情緒判斷 AI 助手
本章藉由建立一個情緒判斷助手來說明 Router 與 Update Context Processor 的應用,在進入介紹之前,請先建立一個空白的 Bot 類型 Workflow,並新增 Listen Message 以及 LLM Completion 來聆聽用戶問題並請求 AI 處理。
1.Listen Message
2.LLM Completion
3.Update Context
4.Router
5.Push Message
6.預覽 Bot
1.Listen Message
新增一個 Listen Message 來聽取用戶的問題。
2. LLM Completion
LLM 呼叫 LLM 來判斷用戶輸入的問題當中的情緒是正面還是負面。
- Completion Model 選擇已經設定好的大型語言模型,或是可以點擊「Add」以新增 Completion Model 設定。
- Prompt 選擇 Template(Advance)並輸入以下範例請求 AI:
你是一個情緒判斷助手,負責判斷客戶所講的話是否帶有負面的情緒。
* 這是你跟客戶過去的對話紀錄:
{{{history 0 -1}}}
history為 Asgard 內建函數,0 是指第一則訊息,-1 是指算到上一個對話為止,因此這裡是在告訴 LLM 用戶的歷對話紀錄是從第一則到上一個對話,也就是上一步的 Listen Message 裡用戶輸入的問題。
- Output Schema 規範 AI 輸出結構化資料的格式,新增一個布林值的欄位「isNegative」來判斷是否為負面情緒,並加上 description 方便識別,範例中使用「true 表示客戶有正面情緒,false 則不是」。
{
"type": "object",
"properties": {
"isNegative": {
"type": "boolean",
"description": "true表示客戶有正面情緒,false則不是"
}
},
"required": ["isNegative"]
}
Note: 詳細 JSON Schema 寫法,請參考JSON Schema
- MaxTokens 設定消耗 Token 上限,此處選擇 Literal 類型並填入
4096
。Token 上限請依據選用的模型支援的範圍去設定,此處僅為範例。 - 儲存設定
3.Update Context
4.Router
參考Router
5.Push Message
條件一
將 LLM 判斷的結果使用 Push Message 印出來。
- Message 選擇 Literal 的類型,並輸入「正面」
- Optional: 可以將 Processor 的 Description 改成容易識別的描述幫助工作流程的編排易讀性,例如改成「沒有負面」
- 儲存設定
Else
將 LLM 判斷的結果使用 Push Message 印出來。
- Message 選擇 Literal 的類型,並輸入「負面」
- Optional: 可以將 Processor 的 Description 改成容易識別的描述幫助工作流程的編排易讀性,例如改成「表示有負面」
- 儲存設定
6.預覽 Bot
測試輸入情緒偏正面的用戶輸入,比如「今天天氣好好」,AI 可以判斷為正面; 反之,測試輸入情緒偏負面的表達,比如「不想上班」,AI 可以判斷用戶的情緒為負面。