从 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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…