Retrieve Knowledge Processor
Retrieve Knowledge Processor 用於從知識庫中檢索相關資料。
基本用法
Retrieve Knowledge Processor 用於透過自然語言查詢檢索知識庫中的相關內容。當工作流程執行到此節點時,會使用設定的查詢文字在指定的知識庫中進行語意搜尋,根據相似度閾值篩選結果,並將符合條件的資料以陣列形式儲存到指定變數中。適用於智能問答、文件檢索、內容推薦、客服支援等需要基於知識庫提供精準資訊的場景。
配置參數
Name
- 顯示在畫布上的名稱,用於在工作流程中識別此 processor
Description
- 用於補充此 processor 的用途,提升工作流程的可讀性與可維護性
Properties
Knowledge Bases(必填)
- 說明:選擇要檢索的知識庫
- 設定方式:從下拉選單選擇已建立的知識庫
- 支援格式:可選擇多個知識庫進行跨庫檢索
Text Query(必填)
- 說明:用於檢索的文字查詢內容
- 設定類型:
- Literal:直接輸入固定查詢文字
- Expression:使用 JavaScript 表達式動態產生查詢
- Template:使用範本語法組合查詢內容
- Template (Advance):進階範本模式
Similarity Threshold(必填)
- 說明:相似度閾值,用於篩選檢索結果
- 範圍:0~1 之間的數值
- 規則:1 表示最相似,數值越小相似度要求越低
- 建議值:一般設定在 0.1~0.7 之間
Max Results(必填)
- 說明:最多回傳的結果數量
- 用途:控制檢索結果的數量,避免回傳過多資料
- 建議值:根據應用需求設定,一般為 5~20 筆
Result Field(必填)
- 說明:檢索結果要儲存的變數名稱
- 類型:檢索結果會以陣列形式儲存到此變數中
- 預設值:
result
Filter Tags(選填)
- 說明:用於篩選結果的標籤
- 格式:以逗號分隔的標籤清單
- 用途:可根據知識庫中的標籤進行額外篩選
Sample K(選填)
- 說明:從索引資料及其增強資料中取樣的數量
- 預設值:20
- 用途:控制檢索過程中的取樣範圍
Path Exists(進階功能)
- 說明:檢查指定 JSON 路徑的欄位是否存在
- 格式:有效的 JSON Path 語法
- 用途:用於過濾具有特定欄位結構的資料
Path Predicate(進階功能)
- 說明:使用 JSON Path 述詞進行條件篩選
- 格式:有效的 JSON Path 述詞(例如:
$.category == "HR"
) - 邏輯:多個述詞之間使用 AND 邏輯連接
- 用途:根據資料內容進行精確篩選
連接關係
Success
當成功檢索到結果時,工作流程會從此連接點繼續執行。Result Field 設定的變數名稱會成為新的可用變數。
Failure
當檢索過程發生錯誤時,工作流程會從此連接點繼續執行,並產生 prevError
變數儲存錯誤資訊。
使用範例
基本知識檢索
Retrieve Knowledge 設定:
- Knowledge Bases:選擇
飯店KB
- Text Query:選擇
Expression
searchQuery
- Similarity Threshold:
0.4
- Max Results:
5
- Result Field:
faqs
動態查詢檢索
Text Query 設定:
- 設定類型:選擇
Expression
(() => {
return prevMessage;
})()
歷史對話檢索
Text Query 設定:
- 設定類型:選擇
Template (Advance)
結果判斷處理
Router 條件:
(() => {
return faqs.nodes.length > 0;
})()
標籤篩選檢索
Filter Tags 設定:
FAQ,客服,會員
注意事項
-
知識庫準備:確保知識庫已正確建立並匯入相關文件資料
-
查詢品質:清晰具體的查詢文字有助於獲得更準確的檢索結果
-
相似度調整:根據知識庫內容和查詢需求調整 Similarity Threshold
-
結果數量:合理設定 Max Results,避免回傳過多不相關的結果
-
效能考量:大型知識庫檢索可能需要較長時間,適當設定參數以平衡準確性和效能
-
錯誤處理:建議連接 Failure 分支,處理知識庫連線或檢索錯誤