跳轉到內容

RAG 檢索範式技巧

單次檢索召回不全,是 RAG 問答最常見的痛點。本篇給出一個可直接複用的兩段式檢索範式:用一次便宜的"查詢擴寫"換多路召回

問題:拿使用者原話直接檢索,經常查不全

使用者的原始提問往往口語化、只有一個視角,與知識庫中的表述不匹配 (同義詞、專業術語、中英文差異),單次檢索召回不全,回答自然不完整。

範式:先擴寫關鍵詞,再並行批次查詢

先用 Agent 節點把問題擴寫成一組查詢關鍵詞,再用 Iteration 節點並行批次查詢:

Start ─▶ Agent(生成一組查詢關鍵詞,輸出陣列)
      ─▶ Iteration(並行)[ 子流程: Tool 檢索(知識庫/搜尋) ]
      ─▶ LLM(去重合並,基於檢索結果作答) ─▶ Answer

要點

  1. 關鍵詞生成節點:提示詞中要求輸出結構化陣列(如 JSON 陣列),每個關鍵詞覆蓋不同角度 —— 同義改寫、上下位概念、專業術語、中英文對照;數量控制在 3~5 組,太多會攤薄單次檢索質量並抬高成本
  2. Iteration 開並行模式:批次查詢同時發出,速度遠快於逐條序列;配置錯誤處理,單條查詢失敗不拖垮整體
  3. 彙總節點只基於檢索結果作答:提示詞明確"資料以檢索返回為準,不得編造",並做去重合並
  4. 成本搭配:關鍵詞生成是簡單任務,用小引數模型即可;最後的彙總作答再用大模型 (參考 技巧二的分層用模型策略)

這個範式的本質:用一次便宜的"查詢擴寫"換多路召回,比讓單次檢索硬扛準確率划算得多。

關聯閱讀