跳至主要内容

REFERENCE

開發者參考

認證、API、SDK、Flow Agent 處理節點與參數取值的完整參考。

Retrieve Knowledge

用自然語言查知識庫,回傳相似度符合門檻的片段。

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

  1. 基本用法​

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

  2. 配置參數​

    節點的屬性面板:

    Retrieve Knowledge 的屬性面板:Knowledge Bases、Text Query、Similarity Threshold 等

    Name​

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

    Description​

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

    Properties​

    Knowledge Bases(必填)​

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

    Text Query(必填)​

    用於檢索的文字查詢內容。支援 Literal、Expression、Template 等設定類型,詳細說明請參考: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 邏輯連接。可設定多個篩選條件。

  3. 在 Workflow CRD 中的設定​

    - name: proc-retrieve
    type: retrieve-knowledge
    labels:
    display_name: 檢索產品知識庫
    configs:
    - name: knowledgeBases
    value: kb-product-manual,kb-faq
    - name: textQuery
    expression: prevMessage
    - name: similarityThreshold
    value: "0.7"
    - name: resultField
    value: result
    - name: sampleK
    value: "20"
    - name: filterTags
    value: public

    knowledgeBases 與 filterTags 都是以逗號分隔的字串,不是陣列。resultField 的預設值是 result,sampleK 的預設值是 20。

    這個 processor 允許動態設定,編輯器上的 Path Exists 與 Path Predicate 就是以動態設定的形式加上去的。

  4. 連接關係​

    Success​

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

    Failure​

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

  5. 一個實際的例子​

    用使用者的問題去查知識庫。

    欄位值
    Knowledge Bases專案裡的知識庫(可複選)
    Text QueryExpression:prevMessage
    Similarity Threshold0.7
    Result Fieldkb_hits
    Sample K5

    執行後 kb_hits 是一個物件。變數名稱由 Result Field 決定,預設是 result。後面通常接 LLM Completion,把命中的片段放進 Prompt 一起送給模型。

  6. 注意事項​

    • Similarity Threshold 是必填,決定回傳哪些片段;調高會漏、調低會雜,要看知識庫內容調。
    • Sample K 決定最多回幾筆。
    • Filter Tags 用來限制只在帶特定標籤的文件裡找。

準備好開始了嗎?

想知道 Asgard 怎麼用在你的團隊?跟我們聊聊。

聯絡我們