Files
LangBot/plugins/KnowledgeEngine/LangRAG/readme/README_zh_Hant.md

4.9 KiB
Raw Permalink Blame History

#LangRAG

LangBot 的 RAG(檢索增強產生)引擎插件。

該插件示範如何建立知識引擎,使用 LangBot Host 的內建基礎架構(嵌入模型和向量資料庫)來處理文件攝取和向量檢索。

## 特徵

-外部解析器整合- 更喜歡來自解析器插件(例如 GeneralParsers)的預解析內容,包括結構化部分和文檔元數據 -後備內部解析- 包含內建解析器作為未配置外部解析器時的後備 -多重索引策略- 扁平分塊、父子分塊、LLM 產生的問答對 -彈性檢索- 向量、全文或混合搜尋 -查詢重寫- HyDE、多查詢、後退策略以提高召回率 -可配置分塊- 具有自訂區塊大小和重疊的遞歸字元分割 -節感知分塊- 當結構化節可用時,分塊會保留標題、頁面資訊和表格邊界 -上下文擴展- 可以選擇在每個命中周圍附加相鄰區塊,以獲得更豐富的檢索上下文 -文件管理- 依文件刪除索引向量

## 建築學

┌─────────────────────────────────┐
│         LangBot Core            │
│  (Embedding / VDB / Storage)    │
└──────────┬──────────────────────┘
           │ RPC (IPC)
┌──────────▼──────────────────────┐
│          LangRAG                │
│  ┌───────────────────────────┐  │
│  │    Knowledge Engine       │  │
│  │  Parse → Chunk → Embed   │  │
│  │      → Store / Search    │  │
│  └───────────────────────────┘  │
└─────────────────────────────────┘

攝取流程

LangRAG 現在更喜歡 LangBot Host 提供的解析器輸出:

  1. LangBot讀取上傳的文件
  2. 解析器外掛程式(例如 GeneralParsers)提取“文字”、“部分”和“元資料”
  3. LangRAG直接擷取結構化結果
  4. 如果沒有可用的解析器輸出,LangRAG 將回退到其內部解析器 5.所選索引策略建構塊/問答對
  5. LangBot Host 產生嵌入並儲存向量

這意味著 LangRAG 在與外部解析器插件配合使用時效果最佳。

## 配置

知識庫創建

參數 描述 預設
embedding_model_uuid 嵌入模型 必填
索引類型 索引策略:chunk、parent_child或qa 區塊
塊大小 每塊字元數 512
重疊 區塊之間的重疊 50
parent_chunk_size 父區塊大小(僅限parent_child) 2048
child_chunk_size 子區塊大小(僅parent_child) 256
qa_llm_model_uuid 用於問答產生的法學碩士(僅限問答) -
每個區塊的問題 每個區塊產生的問題(僅限品質保證) 1

檢索

參數 描述 預設
top_k 傳回的結果數 5
搜尋類型 搜尋模式:「向量」、「全文」或「混合」 向量
query_rewrite 重寫策略:off、hyde、multi_query或step_back 關閉
rewrite_llm_model_uuid 用於查詢重寫的 LLM(啟用重寫時) -
上下文視窗 每次命中周圍附加的相鄰區塊的數量 0

指數策略

-chunk- 預設平面分塊。將文件分割成固定大小的區塊並直接嵌入每個區塊。當解析器部分可用時,將逐節建立區塊,而不是展平整個文件。 -parent_child- 兩級分塊。分為大的父塊,然後是較小的子塊。嵌入子塊但返回父文本以獲得更豐富的上下文。當解析器節可用時,節將用作自然父邊界。 -qa- LLM 產生的問答對。將文字分塊,使用 LLM 為每個區塊產生問答對,並嵌入問題。當解析器部分可用時,問答產生也變得具有部分感知能力。

查詢重寫

-hyde- 假設的文檔嵌入。產生查詢的假設答案,然後嵌入該答案以供檢索。 -multi_query- 產生 3 個查詢變體,對每個變體進行搜索,並按分數合併結果。 -step_back- 產生更抽象的問題並使用原始查詢和抽象查詢進行搜尋。

與 GeneralParsers 配對

GeneralParsers 目前是 LangRAG 推薦的解析器,因為它可以提供:

  • 更清晰的 PDF 提取
  • 結構化部分
  • 表格保留文本
  • 文檔級元數據
  • 透過視覺模型進行可選的 OCR 和影像描述

LangRAG 在攝取過程中直接使用這些解析器輸出,這通常會比後備解析器產生更好的區塊和更好的檢索品質。

## 發展

pip install -r requirements.txt
cp .env.example .env

在“.env”中設定“DEBUG_RUNTIME_WS_URL”和“PLUGIN_DEBUG_KEY”,然後使用 IDE 偵錯器啟動。

連結