跳轉到
版本 v1.0.25

檢索器

這頁能幫你做什麼

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

適合的情境例如:

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

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

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

開始前

需要先準備好的資源

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

操作步驟

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

    檢索器任務設定面板

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

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

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

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

    「輸入與輸出」分頁

    「錯誤處理」分頁

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

欄位 必填 預設 說明
名稱 此任務在工作流程中的唯一識別名稱,不可與其他狀態重複。
檢索器 要使用的檢索器資源。其類型(向量/關鍵字/混合)決定下方會出現哪些查詢欄位。也可改用「狀態輸入」動態指定(路徑寫法見 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」開關。

執行設定(摺疊區塊)

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

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

預期結果

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

下一步