RAGFlow 是一個基于深度文檔理解的開源 RAG(檢索增強生成)引擎。 與 LLM 集成后,它能夠提供真實的問答功能,并以來自各種復雜格式數據的可靠引用為支撐。
教程鏈接:OpenBayes 控制臺
使用云平臺:OpenBayes
signup - OpenBayes
首先點擊「公共教程」,在公共教程中找到「構建 RAG 系統:基于 Qwen3 Embedding 的實踐 」,單擊打開。
頁面跳轉后,點擊右上角「克隆」,將該教程克隆至自己的容器中。
平臺會默認選配好原教程所使用的算力資源、鏡像版本,不需要再進行手動選擇。目前平臺計費方式已經更新,大家可以按照需求選擇「按量付費」或「包日/周/月」。點擊「繼續執行」,等待分配資源。
模型文件較大,稍等容器啟動 5-6 分鐘后訪問,否則將顯示「Bad Gataway」。代碼和數據同步完成,帶容器狀態顯示為「運行中」后,打開 API 地址。
一、啟動 RAGFlow 服務器
本教程已為 RAGFlow 的服務配置完畢,您無需自行部署,啟動容器后,可直接點擊 API 地址訪問。
登錄信息如下:
用戶名:admin@123.com
密碼:123456
二、創建一個知識庫
借助多個知識庫,您可以構建更靈活、更多樣化的問答系統。要創建您的第一個知識庫,請執行以下操作:
以下屏幕截圖展示了知識庫的配置頁面。合理的知識庫配置對于未來的 AI 聊天至關重要。例如,選擇錯誤的嵌入模型或分塊方法會導致聊天中出現意外的語義丟失或答案不匹配的情況
1.選擇分塊 RAGFlow 提供多種分塊模板,方便對不同布局的文件進行分塊,并確保語義完整性。在分塊方法中,您可以選擇適合您文件布局和格式的默認模板。下表列出了每個支持的分塊模板的描述及其兼容的文件格式:
注意:您還可以在數據集頁面上更改文件的分塊方法。
2.選擇嵌入 嵌入模型將塊轉換為嵌入。一旦知識庫包含塊,它就無法更改。要切換到不同的嵌入模型,必須刪除知識庫中所有現有的塊。支持以下嵌入模型:
-
BAAI/bge-large-zh-v1.5
-
maidalun1020/bce-embedding-base_v1
-
Qwen3-embedding(默認)
3.上傳 RAGFlow 的文件管理允許您將一個文件鏈接到多個知識庫。您也可以將單個文件或文件夾(批量上傳)從本地計算機上傳到知識庫。 建議您將文件上傳到「文件管理」,然后再鏈接到目標知識庫,以避免永久刪除風險。
4.解析 文件解析的兩個核心操作:
-
對文件進行分塊(依據布局)
-
構建嵌入和全文索引(關鍵字索引)
選擇分塊方法和嵌入模型后,即可開始解析文件。
5.干預文件解析 RAGFlow 允許您查看和干預分塊結果:
-
點擊解析完成的文件,進入 Chunk 頁面
-
將鼠標懸停在快照上以預覽每個塊
-
雙擊分塊文本以編輯內容或添加關鍵字
-
在測試文本中提出簡單問題,即可驗證檢索設置是否合理。
6.運行檢索 RAGFlow 使用「全文搜索 + 向量搜索」多重召回機制。建議在設置 AI 聊天前調整以下參數:
-
相似度閾值:默認 0.2,低于該值的塊將被過濾
-
向量相似度權重:默認 0.3,用于調節向量相似度對總分的貢獻比
-
Reranker模型:教程提供了Qwen3-Reranker-0.6B重排序模型
-
留空時使用關鍵詞相似度和向量相似度。
-
配置時則使用關鍵詞相似度與 reranker 評分。
查看更多詳情
三、根據知識庫建立 AI 聊天
知識庫、無幻覺聊天和文件管理是 RAGFlow 的三大支柱。 RAGFlow 中的聊天基于一個或多個特定知識庫。創建知識庫并完成文件解析后,即可開始 AI 對話。
1.開始人工智能 您可以通過創建助手來開始 AI 對話: 單擊頁面中間頂部的「聊天選項卡 > 創建助手」,以顯示下一個對話的聊天配置對話框。 RAGFlow 提供靈活的模型配置方式:每個對話可選擇不同模型,也可在系統設置中配置默認模型。
2.配置助手信息
助手名稱:您的聊天助手名稱。每個助手都對應一個具備唯一配置的對話(知識庫、提示、搜索設置等)。 空響應: 留空:RAGFlow 在無法檢索到答案時嘗試生成內容(可能出現幻覺)。 填寫:限制回答來源于知識庫,統一返回指定內容。 顯示引用:默認啟用。RAGFlow 會標明回答所依據的來源信息。 選擇知識庫:支持多選。需保證所選知識庫使用相同的嵌入模型,否則會報錯。
更新提示引擎與更新模型設置等更多內容,點擊查看詳情
3.現在發送一個名為「XX 虛擬機圖形虛擬化增強技術軟件測試大綱 V3」的文檔,在下面的對話框輸入問題「責任作者是誰?」,點擊發送,可以看到人工智能分析文檔很快給出了正確答案。
將鼠標懸停在目標聊天助手上點擊 「編輯」,顯示聊天配置對話框:
四、開啟第一個 Agent——創建 Text2SQL 代理
利用 RAGFlow 的 RAG 功能構建 Text2SQL 代理,可以彌合自然語言處理(NLP)和結構化查詢語言(SQL)之間的差距。Text2SQL 代理致力于使數據庫查詢更加直觀、用戶友好,同時確保效率和準確性。它迎合了廣泛的用戶群體,從完全不懂技術的個人到經驗豐富的數據分析師和開發人員。
1.數據準備
我們已經通過數據庫定義腳本創建了一個簡化的電商系統,并在Agent中建立好連接,包含以下四張表:
Customers(客戶表)
CustomerID: 客戶唯一編號(主鍵)
UserName: 用戶名
Email: 郵箱
PhoneNumber: 電話號碼
Products(產品表)
ProductID: 產品唯一編號(主鍵)
ProductName: 產品名稱
Description: 產品描述 Price: 單價
StockQuantity: 庫存數量
Orders(訂單表)
OrderID: 訂單唯一編號(主鍵)
CustomerID: 下單客戶的編號(外鍵)
OrderDate: 下單日期
TotalPrice: 總金額
OrderDetails(訂單詳情表)
OrderDetailID: 明細項編號(主鍵)
OrderID: 所屬訂單編號(外鍵)
ProductID: 產品編號(外鍵)
UnitPrice: 單個商品價格
Quantity: 數量
TotalPrice: 明細總價(單價 × 數量)
這四張表共同描述了一個簡化的電商系統。該系統能夠記錄以下信息:
客戶信息:包括客戶的基本信息,如用戶名、郵箱和電話號碼。
產品信息:包括產品的詳細信息,如名稱、描述、價格和庫存數量。
訂單信息:包括客戶的訂單記錄,如下單日期和訂單總金額。
訂單詳情:包括每個訂單中具體包含的產品及其數量和價格。
2.配置知識庫
對于 RAGFlow 基于 RAG 的 Text2SQL,通常需要以下知識庫:
DDL(數據庫表創建語句)
DB_Description(表和列的詳細描述)
Q->SQL(自然語言查詢描述以及相應的 SQL 查詢示例)
在專業查詢場景中,用戶查詢可能包含特定領域術語的縮寫或同義詞。如果用戶引用了特定領域術語的同義詞,系統可能無法生成正確的 SQL 查詢。因此,建議整合同義詞庫以幫助代理生成更準確的 SQL 查詢:
TextSQL_Thesaurus(特定領域術語及其同義詞的同義詞庫)
3.運行并測試 選擇代理,在上方面板選擇Agent,并選擇Text to SQL。
啟動Text to SQL代理,點擊運行按鈕啟動代理
輸入問題「Help me summarize stock quantities for each product」,單擊發送按鈕將問題發送給代理,等待執行完成并查看對應的 SQL 查詢結果。
通過以上步驟,您可以成功創建并測試 Text2SQL 代理,利用自然語言查詢數據庫,提高查詢效率和準確性。