跳至主要内容

Retrieve Knowledge

Retrieve Knowledge 是用於從知識庫中檢索相關資料的 processor。

基本用法

執行 Retrieve Knowledge 時,會使用設定的查詢文字在指定的知識庫中進行語意搜尋,根據相似度閾值篩選結果,並將符合條件的資料以陣列形式儲存到指定變數中供後續 processor 使用。適用於智能問答、文件檢索、內容推薦、客服支援等需要基於知識庫提供精準資訊的場景。

配置參數

Name

顯示在畫布上的名稱,用於在工作流程中識別此 processor。

Description

用於補充此 processor 的用途,提升工作流程的可讀性。

Properties

Knowledge Bases(必填)

選擇要檢索的知識庫名稱,以逗號分隔的 KnowledgeBase 名稱清單。可選擇多個知識庫進行跨庫檢索。需要先建立並匯入知識庫資料。

Text Query(必填)

用於檢索的文字查詢內容。支援 Literal、Expression、Template、Template (Advance) 等設定類型,詳細說明請參考:Expression 介紹 - 取值方式

Similarity Threshold(必填)

相似度閾值,用於篩選檢索結果。範圍為 0-1 之間的數值,1 表示最相似,數值越小相似度要求越低。一般設定在 0.1-0.7 之間。

Result Field(必填)

檢索結果要儲存的變數名稱,檢索結果會以陣列形式儲存到此變數中,預設值為 result

Filter Tags

用於篩選結果的標籤,以逗號分隔的標籤清單。可根據知識庫中的標籤進行額外篩選。

Sample K

從索引資料及其增強資料中取樣的數量,預設值為 20。控制檢索過程中的取樣範圍。

Path Exists

檢查指定 JSON 路徑的欄位是否存在。使用有效的 JSON Path 語法,用於過濾具有特定欄位結構的資料。可設定多個路徑檢查條件。

想了解更多 JSON Path 語法的表達方式,請參考 JSONPath 語法規範

Path Predicate

使用 JSON Path 述詞進行條件篩選。格式為有效的 JSON Path 述詞(例如:$.category == "HR"),多個述詞之間使用 AND 邏輯連接。可設定多個篩選條件。

連接關係

Success

當成功檢索到結果時,工作流程會從此連接點繼續執行。檢索結果會以陣列形式儲存到 Result Field 指定的變數名稱中,該變數可供後續 processor 使用。

Failure

當檢索過程發生錯誤時,工作流程會從此連接點繼續執行,並產生 prevError 變數儲存錯誤資訊。

使用範例

基本知識檢索


使用 LLM 產生的查詢文字檢索知識庫,並將檢索結果用於產生回應。適用於智能問答系統中,根據使用者問題檢索相關知識後提供準確回答。

動態查詢檢索


直接使用使用者輸入的訊息進行知識庫檢索。Text Query 使用 Expression prevMessage 動態取得使用者的查詢內容,然後根據檢索結果決定後續處理。

歷史對話檢索


使用對話歷史進行知識庫檢索。Text Query 使用 Template (Advance) 功能(例如:{{{history historyStart -1}}})取得對話歷史內容,提供更有脈絡的檢索結果。

結果判斷處理


根據檢索結果的存在與否決定後續處理流程。Router 使用條件判斷(例如:faqs.nodes.length > 0)檢查是否有檢索結果,有結果時使用 LLM 產生回應,無結果時提供預設訊息。

注意事項

  1. 確保知識庫已正確建立並匯入相關文件資料。

  2. 清晰具體的查詢文字有助於獲得更準確的檢索結果。

  3. 根據知識庫內容和查詢需求調整 Similarity Threshold。

  4. 大型知識庫檢索可能需要較長時間,適當設定參數以平衡準確性和效能。

  5. 建議連接 Failure 分支,處理知識庫連線或檢索錯誤。