從 0 到 1:基于 Qwen3 Embedding 的 RAG 智能問答系統搭建指南

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 代理,利用自然語言查詢數據庫,提高查詢效率和準確性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/86648.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/86648.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/86648.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Prompt Distillation for Efficient LLM-based Recommendation

題目 基于LLM的高效推薦的快速蒸餾 論文地址:https://dl.acm.org/doi/10.1145/3583780.3615017 摘要 大語言模型(LLM)在各種任務上表現出了無與倫比的建模能力,例如多步推理,但是這些模型的輸入大部分僅限于純文本&am…

JDBC 工具類:1.0到3.0版本

一、引言 在 Java 開發中,與數據庫的交互是一項常見且重要的任務。JDBC(Java Database Connectivity)作為 Java 語言訪問數據庫的標準 API,為我們提供了統一的接口來操作各種數據庫。然而,每次進行數據庫操作都編寫大…

實驗室建設案例 | 洛陽職業技術學院—人工智能實驗室

院校簡介 洛陽職業技術學院位于千年古都、牡丹花城、絲路起點洛陽,是一所由洛陽市政府舉辦的公辦高職院校,成立于2011年,辦學歷史可追溯到1945年的豫西公學。學校全面貫徹黨的教育方針,圍繞落實立德樹人根本任務,秉承“…

vue2中,修改對象數組中元素對應的屬性,頁面不更新的問題解決

有如下代碼: // 有一個數組 let dataAry [{name: haha, age: 20},{name: hello, age: 21} ] // 這個數組在模板中使用了v-for進行循環 v-for"one of dataAry" :name"one.name" :address"one.address"// 子組件中使用如下&#xff…

代理模式:控制對象訪問的守門員[特殊字符],優雅實現功能增強與訪問控制!

代理模式:控制對象訪問的守門員🔐,優雅實現功能增強與訪問控制! 文章目錄 代理模式:控制對象訪問的守門員🔐,優雅實現功能增強與訪問控制!前言:為什么需要代理&#xff1…

《人間詞話》PPT課件

《人間詞話》簡介 《人間詞話》是王國維所著的一部文學批評著作。《人間詞話》作于1908~1909年,最初發表于《國粹學報》。該作是作者接受了西洋美學思想之洗禮后,以嶄新的眼光對中國舊文學所作的評論。 《人間詞話》PPT課件下載 夸克網盤分享…

解剖智能運維三基石:Metrics/Logs/Traces

3秒知識卡 三基石關系: Metrics(指標)→ 系統脈搏(CPU/錯誤率) Logs(日志)→ 事件日記(錯誤堆棧/用戶行為) Traces(追蹤)→ 血緣地圖(…

從代碼學習深度學習 - 情感分析:使用卷積神經網絡 PyTorch版

文章目錄 前言加載數據集一維卷積最大時間匯聚層textCNN模型定義模型加載預訓練詞向量訓練和評估模型總結前言 在之前的章節中,我們探討了如何使用循環神經網絡(RNN)來處理序列數據。今天,我們將探索另一種強大的模型——卷積神經網絡(CNN)——并將其應用于自然語言處理…

深入解析分布式訓練基石:ps-lite源碼實現原理

分布式機器學習框架是現代推薦、廣告和搜索系統的核心支撐。面對海量訓練數據和高維稀疏特征,參數服務器(Parameter Server, PS) 架構應運而生。作為早期經典實現的ps-lite因其簡潔性和完整性,成為理解PS原理的絕佳切入點。本文將…

IDEA 插件開發:Internal Actions 與 UI Inspector 快速定位 PSI

在開發 IntelliJ 平臺插件的過程中,你常常需要搞清楚 某個 IDE 彈框背后是如何操作 PSI(Program Structure Interface) 的。下面這篇筆記將介紹如何通過 Internal Actions、UI Inspector 以及調試技巧快速定位 PSI 調用鏈。 1. 啟用 Internal…

26考研|數學分析:多元函數微分學

前言 本章我們將進行多元函數微分學的學習,多元函數微分學與一元函數微分學相對應,涉及到可微性、中值定理、泰勒公式等諸多問題的探討與研究,本章難度較大,在學習過程中需要進行深度思考與分析,才能真正掌握這一章的…

數星星--二分

https://www.matiji.net/exam/brushquestion/17/4498/F16DA07A4D99E21DFFEF46BD18FF68AD 二分思路不難&#xff0c;關鍵的區間內個數的確定 #include<bits/stdc.h> using namespace std; #define N 100011 #define inf 0x3f3f3f3f typedef long long ll; typedef pair&…

Oracle/PostgreSQL/MSSQL/MySQL函數實現對照表

函數列表清單 函數作用OraclePOSTGRESQLMSSQLMYSQL求字符串長度LENGTH(str)LENGTH(str)LEN(str)LENGTH(str)字符切割SUBSTR(str,index,length)SUBSTR(str,index,length)SUBSTRING(str,index,length)SUBSTRING(str,index,length)字符串連接str1||str2||str3...strNstr1||str2||…

pycharm客戶端安裝教程

二、 pycharm客戶端安裝 打開pycharm官網&#xff1a;https://www.jetbrains.com/pycharm/download/?sectionwindows 選擇其他版本 選擇2018社區版本&#xff0c;點擊下載 雙擊下載的安裝程序(第一個彈框允許)&#xff0c;選擇下一步 更改安裝路徑&#xff0c;在pycah…

博圖SCL語言中用戶自定義數據類型(UDT)使用詳解

博圖SCL語言中用戶自定義數據類型&#xff08;UDT&#xff09;使用詳解 一、UDT概述 用戶自定義數據類型&#xff08;UDT&#xff09;是TIA Portal中強大的結構化工具&#xff0c;允許將多個相關變量組合成單一數據結構。UDT本質是可重用的數據模板&#xff0c;具有以下核心優…

Vscode自定義代碼快捷方式

首選項>配置代碼片段 >新建全局代碼片段 (也可以選擇你的語言 為了避免有的時候不生效 選擇全局代碼) {"console.log": { //名字"prefix": "log",//prefix 快捷鍵 &#xff1a; log"body": ["console.log($1);", //b…

ESP32 008 MicroPython Web框架庫 Microdot 實現的網絡文件服務器

以下是整合了所有功能的完整 main.py(在ESP32 007 MicroPython 適用于 Python 和 MicroPython 的小型 Web 框架庫 Microdot基礎上)&#xff0c;實現了&#xff1a; Wi?Fi 自動連接&#xff08;支持靜態 IP&#xff09;&#xff1b;SD 卡掛載&#xff1b;從 /sd/www/ 讀取 HTML…

Mcp-git-ingest Quickstart

目錄 配置例子 文檔github鏈接&#xff1a;git_ingest.md 配置 {"mcpServers": {"mcp-git-ingest": {"command": "uvx","args": ["--from", "githttps://github.com/adhikasp/mcp-git-ingest", "…

(LeetCode 面試經典 150 題) 27.移除元素

目錄 題目&#xff1a; 題目描述&#xff1a; 題目鏈接&#xff1a; 思路&#xff1a; 核心思路&#xff1a; 思路詳解&#xff1a; 樣例模擬&#xff1a; 代碼&#xff1a; C代碼&#xff1a; Java代碼&#xff1a; 題目&#xff1a; 題目描述&#xff1a; 題目鏈接…

MySQL之事務原理深度解析

MySQL之事務原理深度解析 一、事務基礎&#xff1a;ACID特性的本質1.1 事務的定義與核心作用1.2 ACID特性的內在聯系 二、原子性與持久性的基石&#xff1a;日志系統2.1 Undo Log&#xff1a;原子性的實現核心2.2 Redo Log&#xff1a;持久性的保障2.3 雙寫緩沖&#xff08;Dou…