跳轉到
版本 v1.0.34

檢索器

這頁的用途

檢索器 (Retriever) 任務用一個預先建立的檢索器資源,從指定的知識庫 (Knowledge Base) 找出與查詢最相關的文件段落。它輸出的是未經重新排序的原始檢索結果,並依檢索器的搜尋策略給每段內容附上相關性分數。

適合的情境例如:

  • RAG 流程中先把相關段落撈出來,再交給 LLM 回答
  • 在內部文件、客服知識庫上建立語意或關鍵字搜尋
  • 用 Metadata 過濾條件把搜尋範圍限縮到特定分類、日期或來源
  • 需要自己分別控制「檢索」與「排序」兩個步驟時,先用本任務再接 排序器 (Ranker)

檢索器 (Retriever) 與檢索 (Retrieval) 有什麼不同?

  • 檢索器 (Retriever) (本頁) = 只跑單一檢索器,輸出原始檢索結果,可細部設定檢索模式、進階過濾與混合搜尋參數。要重新排序得自己再接 排序器 (Ranker) 任務。
  • 檢索 (Retrieval) = 把多個檢索器與一個排序器打包成一個任務,一次完成「檢索+排序」。

開始前

需要先準備好的資源

  • 一個 檢索器 (Retriever) 資源:決定使用哪種檢索模式(向量/關鍵字/混合)。建立方式見 檢索器資源
  • 一個 向量類型的知識庫 (Knowledge Base) :本任務的知識庫選單只會列出向量儲存類型的知識庫。建立方式見 知識庫

操作步驟

  1. 在工作流程 (Workflow) 編輯畫面新增「檢索器」任務(如何新增請見 任務使用指南)。

    檢索器任務設定面板

    上圖是設定完成後的樣子。剛把節點加上去時各欄位還是預設值(「名稱」預帶步驟名、資源欄位都還沒選),照下面的步驟一格一格填。

  2. 在「名稱」填入此任務在流程中的唯一名稱。

  3. 在「檢索器」選擇一個檢索器資源。選好後才會接著出現知識庫與該檢索模式專屬的查詢欄位。
  4. 在「知識庫」選擇要搜尋的向量知識庫。
  5. 依檢索模式填入查詢欄位(見下方各模式說明)。
  6. 在「下一個狀態」選擇本任務完成後要前往的步驟。
  7. 視需要展開「進階任務設定」調整過濾、欄位對照與數量上限。

    檢索器任務展開進階任務設定後的欄位

  8. 切換到「輸入與輸出」、「錯誤處理」分頁調整共用設定(見 任務通用設定)。

    「輸入與輸出」分頁

    「錯誤處理」分頁

本任務特有欄位(共用部分)

欄位 必填 預設 說明
名稱 平台預帶一個步驟名(該任務類型的英文名 + Action 此任務在工作流程中的唯一識別名稱,不可與其他狀態重複。
檢索器 要使用的檢索器資源。其類型(向量/關鍵字/混合)決定下方會出現哪些查詢欄位。也可改用「狀態輸入」動態指定(路徑寫法見 JSONPath 語法)。
知識庫 要搜尋的知識庫,只會列出向量儲存類型。也可改用「狀態輸入」動態指定。
下一個狀態 本任務完成後要轉換到的工作流程狀態;不選代表此狀態為流程結束。
附註 給維護者看的說明文字,不影響執行。

各檢索模式的查詢欄位

選定檢索器後,會依其類型顯示不同的查詢欄位。

向量檢索(Embedding)

以向量相似度做語意搜尋,最適合自然語言問句與概念比對。

選用向量檢索器後出現的「知識庫」與查詢欄位

欄位 必填 預設 說明
查詢來源 否(恆有預設值) 自訂查詢 決定查詢從何而來。可選「自訂查詢」(直接填字串)、「自訂查詢樣板」(用 Jinja 樣板組出查詢)、「既有查詢樣板」(選用已建立的樣板資源並填樣板變數)。
查詢字串 / 查詢樣板 視來源 選「自訂查詢字串」時預帶「找出與主題相符的資訊。」 依「查詢來源」呈現對應輸入:填字串、編輯樣板,或選樣板資源。
樣板變數 視來源 選「既有查詢樣板」時出現,用來填入樣板需要的變數。

關鍵字檢索(Keyword)

以 OpenSearch 的關鍵字比對做搜尋,最適合精確詞彙、產品代碼、ID。

選用關鍵字檢索器後出現的「關鍵字」查詢欄位

欄位 必填 預設 說明
查詢來源 否(恆有預設值) 關鍵字 可選「關鍵字」(輸入一組關鍵字)或「OpenSearch 查詢」(直接寫 OpenSearch 查詢物件)。
關鍵字 是(選關鍵字時) 要比對的關鍵字,系統據此產生關鍵字查詢。一次打一個關鍵字,打完按 Enter,該關鍵字就會變成欄位裡的一張小標籤(要多個就重複這個動作,不是用逗號或空白隔開);標籤上的 可以移除。也可打開「JSONPath」開關整組從上一步帶入。
OpenSearch 查詢 是(選此來源時) 系統提供範本 以 JSON 直接指定 OpenSearch 的 query 物件,自訂布林條件與比對規則。選了這個來源之後,欄位會帶一份可以直接改的範本;最常見的寫法是用 bool 包住條件,例如{ "bool": { "must": [ { "match": { "content": "保固" } } ] } }(「內容裡要有『保固』」)。查詢語法屬 OpenSearch 自己的 Query DSL,完整寫法請參考 OpenSearch 官方文件;若只是要用關鍵字搜尋,把「查詢來源」改回「關鍵字」會簡單得多。

同時用向量與關鍵字檢索,再合併分數,兼顧召回率與精確度。

選用混合搜尋檢索器後出現的「知識庫」與「關鍵字」查詢欄位

欄位 必填 預設 說明
知識庫 要搜尋的知識庫。混合搜尋一樣要選知識庫(如上圖,欄位帶紅色星號),與向量/關鍵字模式相同,說明見上方本任務特有欄位(共用部分)
關鍵字 要比對的關鍵字(至少一個)。一次打一個,打完按 Enter 變成一張小標籤,要多個就重複(不是用逗號隔開)。系統會同時用這些關鍵字做關鍵字查詢、並做向量查詢後合併。

混合搜尋的權重與合併方式在進階任務設定

混合搜尋的「關鍵字權重」「向量權重」「分數正規化方式」「分數合併方式」「關鍵字子查詢」收在下方「進階任務設定」區塊,且只有檢索器類型為混合搜尋時才出現。

進階任務設定(摺疊區塊)

這些欄位收在「進階任務設定」摺疊區塊內。

欄位 必填 預設 說明
過濾查詢 以 JSON 指定 OpenSearch 的 query.bool.filter 篩選條件(例如只取 activetrue 的文件),用來縮小搜尋範圍。
欄位對照 { "retriever_chunk": "retriever_chunk" } 指定要回傳哪些欄位的對照關係;鍵為文件中的原始欄位名稱,值為任務回傳時使用的欄位名稱。畫面上是一個 JSON 編輯器(不是可以按 加列的表格),直接把整包對照寫成 JSON 物件,例如 { "title": "doc_title" } 代表把文件的 title 欄位改名成 doc_title 回傳。
文件數量上限 10 最多回傳幾份文件。範圍 1~1000。

進階任務設定中混合搜尋專屬欄位

下列欄位只有當檢索器類型為混合搜尋時,才會出現在進階任務設定區塊內。

混合搜尋檢索器專屬的權重與分數合併欄位

上圖只框出這幾個欄位本身(沒有把「進階任務設定」的區塊標題一起拍進來);在實機上它們是收在設定分頁底部「進階任務設定」摺疊區塊裡,要先展開才看得到。

這兩個權重該怎麼調

只有比例有意義,絕對值沒有0.5 / 0.50.8 / 0.8 效果一樣,0.7 / 0.3 才是真的偏向關鍵字。先用預設的 0.5 / 0.5 跑一次,再看結果調整:使用者常打專有名詞、型號、料號(字要對得上)→ 把關鍵字權重調高;使用者用口語問、換句話說也要找得到 → 把向量權重調高。

欄位 必填 預設 說明
關鍵字子查詢 以 JSON 自訂 OpenSearch 查詢,取代自動產生的關鍵字查詢部分;向量查詢仍依「關鍵字」自動產生。未填則系統自動建立比對查詢。
關鍵字權重 0.5 合併分數時關鍵字查詢所占比重。範圍 0~1(每格 0.05)。調大=更重視「有出現使用者打的那些字」的文件。
向量權重 0.5 合併分數時向量查詢所占比重。範圍 0~1(每格 0.05)。調大=更重視「意思接近、但用詞不一樣」的文件。
分數正規化方式 Min-Max 正規化 合併前如何把兩種分數換算到同一個尺度(不然關鍵字分數與向量分數大小不能直接比)。可選「Min-Max 正規化」或「L2 正規化」,一般維持預設即可。
分數合併方式 算術平均 如何把兩種查詢的分數合併。可選「算術平均」「幾何平均」「調和平均」。一般維持「算術平均」;幾何平均與調和平均不接受 0 分的文件,只在確認兩種分數都不會是 0 時才改用。

部分欄位可以改成動態取值

可動態取值的欄位,標籤右側會出現「JSONPath」開關(接受整包 JSON 的欄位另有「JSON」開關),打開後即可在執行時決定該欄位的值。哪些欄位提供開關依欄位型別而定,以畫面實際顯示為準;用法見任務通用設定 — 欄位的輸入方式切換

「OpenSearch 查詢」本來就是 JSON 編輯器,這一格沒有「JSON」開關(只有「JSONPath」一個);要改成整包動態取值就打開「JSONPath」開關。

執行設定(摺疊區塊)

這些欄位收在「執行設定」摺疊區塊內,多為共用設定,完整說明見 任務通用設定

欄位 必填 預設 說明
上傳輸出至外部記憶體 關閉 開啟後可把任務輸出寫入外部記憶體,並設定要寫入的選擇器。
在任務開始階段開啟即時輸出串流 關閉 開關。開啟後,任務開始時把任務定義以串流方式即時送到執行頁面顯示。
在任務結束階段開啟即時輸出串流 關閉 開關。開啟後,任務結束時把結果以串流方式即時送到執行頁面顯示。
錯誤時中止 開啟 開啟時任務出錯就中止流程;關閉後可改填「預設輸出」,出錯時用此預設值繼續往下走。
預設輸出 僅在「錯誤時中止」關閉時出現,供定義出錯時回傳的內容。 它展開後是一組英文標籤的子欄位Errors + 這個任務的輸出欄位),見 預設輸出的子欄位

預期結果

選好檢索器與知識庫、填入查詢後,本任務會回傳一份依相關性分數排序的文件段落清單,可直接接給 排序器 (Ranker) 任務重新排序,或接給 LLM 任務作為回答依據。

下一步