手把手带你搭建RAGflow,专业AI知识库的开源工具,RAGflow零基础入门到精通,看这一篇就够了!

摘要:在大模型应用的蓬勃发展中,检索增强生成(Retrieval-Augmented Generation,RAG)技术占据了举足轻重的地位。它就像是大模型的智慧助手,通过从外部知识库中检索相关信息,并将其融入到大模型的回答生成过程中,有效提升了大模型回答的准确性、可靠性和时效性,在问答系统、智能客服、文档摘要等多个领域都发挥着关键作用 。

上图是一个常见的AI应用的数据流向图,文档分块之后向量化存储到向量数据库,然后输入文本内容,形成prompt,从向量数据库检索相关的知识背景,发送给LLM之后,返回结果。然而,目前 RAG 在实际应用中仍然存在一些效果问题,严重影响了其应用的体验和价值。比如,幻觉问题较为突出,模型可能会生成一些看似合理但实际上与事实不符的答案,就像在回答关于历史事件的问题时,可能会虚构一些不存在的细节或情节 。拒答现象也时有发生,当检索结果不完整或未能检索到相关内容时,模型就无法给出答案,这在一些对回答及时性要求较高的场景中是难以接受的。此外,回答不完整的情况也屡见不鲜,可能是因为文档切片本身不完整,或者召回过程中存在缺失,导致模型在处理复杂问题时遗漏关键信息,给出的答案无法满足用户的需求 。

造成这些问题的原因是多方面的。语义不协调是一个重要因素,任务的预期含义、RAG 的理解以及存储的底层知识之间可能存在不一致,导致问题与答案在语义上不匹配,使得直接比较问题和原始知识库难以得到理想的结果。向量嵌入技术的不透明性也增加了问题的复杂性,向量在捕捉陈述语义内容方面存在固有缺陷,余弦相似性等度量方法在排名时不够精确,且难以理解和校准这些分数的意义,使得检索结果的可靠性受到影响 。本文介绍一款开源工具解决语义分块的工具,可以快速搭建专业的AI知识库.‍‍‍

  • Ragflow是什么?‍‍‍‍‍‍‍‍‍

  • Ragflow的主要功能‍‍‍‍‍‍‍‍‍‍‍‍‍‍

  • 快速上手Ragflow:构建知识库与应用‍‍‍‍‍‍‍‍‍‍‍

01

Ragflow 是什么

这样的背景下,ragflow 应运而生,为解决 RAG 现存问题带来了新的希望 。ragflow 是一款基于深度文档理解构建的开源 RAG 引擎,它就像是一位智能的知识管家,能够为各种规模的企业及个人提供一套精简高效的 RAG 工作流程。它的出现,让用户在处理各类复杂格式数据时,能够结合大语言模型,获得可靠的问答结果,并且每一个回答都有理有据,有清晰的引用来源 。

ragflow 的主要功能十分强大且全面。在文档处理方面,它支持丰富多样的文件类型,无论是常见的 Word 文档、PPT、Excel 表格、txt 文件,还是图片、PDF、影印件、复印件,甚至是结构化数据和网页等,都能轻松应对,就像一个万能的文件处理器,不遗漏任何一种知识载体 。在文本切片环节,它采用基于模板的文本切片技术,这一技术可不简单,不仅智能化程度高,更重要的是可控可解释 。它提供了多种文本模板供用户选择,用户可以根据不同的文档类型和需求,灵活选择最合适的切片方式,大大提高了文本处理的灵活性和准确性 。在检索和生成过程中,ragflow 基于多路召回、融合重排序,能够从海量的信息中精准地找到与问题相关的内容,并通过大语言模型生成高质量的回答 。同时,它还最大程度地降低了幻觉问题,文本切片过程可视化,用户可以直观地看到文本是如何被处理的,并且支持手动调整,确保答案提供关键引用的快照并支持追根溯源,让每一个回答都真实可靠 。

02

Rag的主要功能‍‍‍‍‍‍‍

深度文档理解与知识提取

ragflow 基于深度文档理解技术,能够从各类复杂格式的非结构化数据中精准提取知识 。无论是密密麻麻的学术论文,还是格式复杂的商务报告,它都能像一位专业的知识侦探,从中找到关键信息,实现真正意义上的 “大海捞针”。在处理一份包含大量图表和数据的市场调研报告时,ragflow 不仅能准确识别其中的文字内容,还能理解图表所表达的信息,并将其转化为可检索和利用的知识,为后续的问答和分析提供坚实的数据基础 。

RAGFlow 能够对 PDF、DOCX、EXCEL、PPT,甚至是图片等复杂格式的非结构化数据进行深度剖析。它的核心组件 DeepDoc 利用视觉信息和解析技术,实现了强大的文档理解能力。在视觉处理方面,借助 OCR(光学字符识别)技术,将图像形式的文档或可转换为图像的文档识别为文本,解决了从图像中提取文字信息的难题。例如,对于扫描版的 PDF 文件,OCR 技术可以准确地将其中的文字转化为可编辑的文本,为后续的处理奠定基础。

布局识别也是视觉处理中的重要环节。不同领域的文件布局千差万别,像报纸、杂志、书籍和简历等在排版上各具特点。DeepDoc 能够精准识别文档的标题、段落、表格、图像等元素,判断文本部分的连续性,以及确定哪些部分需要进行表结构识别(TSR)处理,哪些是配图及对应的标题等。它涵盖了 10 个基本布局组件,几乎能够适应所有常见的文档布局情况。通过布局识别,文档中的信息能够以更结构化的方式呈现,便于后续的分析和处理。

在表结构识别(TSR)方面,DeepDoc 同样表现出色。数据表的结构往往较为复杂,存在层次结构标题、跨单元格和投影行标题等情况。DeepDoc 不仅能够识别表的结构,还能将表中的内容重新组合成大语言模型易于理解的句子。TSR 任务定义了 5 个标签,包括列、行列标题、行标题、合并单元格等,通过这些标签可以更准确地解析表格的结构和内容。

除了视觉处理,解析器也是 DeepDoc 的重要组成部分。针对 PDF、DOCX、EXCEL 和 PPT 这四种常见的文档格式,都有专门的解析器。其中,PDF 解析器最为复杂,因为 PDF 格式具有较高的灵活性。PDF 解析器的输出包括有确切位置(页码和矩形位置)的文本块、带有 PDF 裁剪图像的表格以及已翻译成自然语言句子的表格内容,还有带标题和文字的图。通过这些解析器,不同格式的文档能够被准确地解析,提取出其中有价值的信息。

通过深度文档理解技术,RAGFlow 能够从各类复杂格式的非结构化数据中精准提取知识,在海量数据中快速定位关键内容,极大地提升了信息检索的准确性,为后续的检索和生成高质量回答提供了坚实的数据基础。

模板化分块与可解释性

ragflow 采用的模板化分块技术是其一大亮点 。它提供了多种智能且可解释的模板选项,就像为不同类型的文档量身定制的切割模具 。用户可以根据文档的具体类型和需求,轻松选择最合适的分块模板,确保文本切片的准确性和合理性 。对于简历文档,选择 “Resume” 模板可以按照简历的常见结构,如个人信息、工作经历、教育背景等进行分块,使得后续的检索和处理更加高效;而对于学术论文,“Paper” 模板则能根据论文的章节结构进行分块,方便用户快速定位和获取所需信息 。这种模板化分块方式不仅提高了文本处理的效率,还让整个过程更加透明和可控,用户可以清晰地了解文本是如何被处理和分割的 。

异构数据源兼容性

ragflow 的兼容性非常强大,它支持丰富多样的异构数据源 。无论是常见的文本文件,如 Word、Excel、txt,还是特殊格式的文件,如图片、PDF、影印件、复印件,甚至是结构化数据和网页等,都能被 ragflow 轻松接纳和处理 。这意味着用户在构建知识库时,可以将各种不同类型的数据整合在一起,无需担心格式不兼容的问题 。企业可以将内部的合同文档、财务报表、会议纪要等不同格式的文件统一导入 ragflow,构建一个全面的企业知识库,为企业的决策和运营提供有力支持 。

自动化工作流与配置性

ragflow 为用户提供了自动化的 RAG 工作流,从文档的上传、解析、分块,到信息的检索和回答的生成,整个过程都能高效自动地完成 。同时,它对大语言模型和向量模型具有高度的可配置性,用户可以根据自己的需求和实际情况,灵活选择不同的大语言模型和向量模型 。用户可以根据自己的预算和性能需求,选择合适的大语言模型,如DeepSeek-V2、 GPT-4、文心一言等,也可以根据数据的特点和应用场景,选择不同的向量模型进行文本的向量化表示 。这种高度的可配置性,使得 ragflow 能够适应不同用户和不同场景的需求,为用户提供个性化的解决方案 。

03

快速上手Ragflow:构建知识库与应用

准备工作

在使用 ragflow 构建知识库之前,需要确保你的硬件和软件环境满足一定的条件。硬件方面,建议使用 CPU 不低于 4 核心 ,内存大于等于 16GB,磁盘空间大于 50GB 的设备,以保证系统的流畅运行。软件方面,需要安装 Docker 且版本不低于 24.0.0,Docker Compose 版本不低于 v2.26.1 。如果你的设备尚未安装 Docker,可以参考官方文档进行安装 。

下载和部署服务

准备工作完成后,就可以启动 ragflow 服务器了。

首先,通过 git 命令克隆 ragflow 仓库:git clone https://github.com/infiniflow/ragflow.git 。

克隆完成后,进入 docker 文件夹,利用提前编译好的 Docker 镜像启动服务器,执行命令:

cd ragflow/docker

git checkout -f v0.15.1

chmod +x./entrypoint.sh

docker compose -f docker-compose-CN.yml up -d

在这个过程中,需要注意的是,核心镜像文件大约 9GB,下载可能需要一定的时间,请耐心等待 。服务启动成功后,可以通过命令docker logs -f ragflow-server来确认服务器状态,如果出现类似于下图的输出,说明服务已成功启动 。

配置知识库与模型

服务启动后,在浏览器中输入服务器对应的 IP 地址并登录 ragflow,首先需要进行模型配置。点击右上角的头像,选择左侧菜单中的「模型提供商」,在「待添加的模型」中选择要使用的模型供应商,如 DeepSeek-V2,并配置好供应商的 API key 。配置完成后,点击右上角的「系统模型设置」,在弹出的对话框中选择 DeepSeek-V2 模型,点击保存即可 。

单击所需的 LLM 并相应地更新 API 密钥(在本例中为 DeepSeek-V2):

接下来创建知识库,回到知识库页面,点击右上角的「创建知识库」,

输入知识库名称,设置语言、嵌入模型和解析方法等参数 。语言可以根据需求选择,如中文;嵌入模型可以根据数据特点和应用场景选择合适的模型;解析方法则提供了多种选项,如通用模板、论文模板、简历模板等,用户可以根据文档类型进行选择 。设置完成后,点击保存,然后就可以上传文件到知识库了。

上传文件后,点击解析状态下的开始解析文件,等待解析成功,知识库就创建完成了 。

当文件解析完成时,其解析状态变为SUCCESS。

构建应用与使用

ragflow 提供了易用的 API,可以轻松集成到各类企业系统或第三方应用中 。以构建一个简单的问答应用为例,假设我们已经在 ragflow 中创建好了知识库并配置好了模型,接下来可以利用 ragflow 的 API 实现问答功能 。首先,获取 Chat Bot API key 用来对 RESTful API 调用进行鉴权 。然后,调用 REST 方法new_conversation获取唯一的 id 。在应用中,当用户提出问题时,将问题和获取到的 id 以及 API key 一起发送到 ragflow 的 API 服务,如http://demo.ragflow.io/v1/api/completion_aibotk ,ragflow 会根据问题从知识库中检索相关信息,并通过配置的模型生成回答返回给应用 。这样,一个基于 ragflow 的简单问答应用就构建完成了,用户可以在应用中输入问题,获取准确、可靠的回答 。

ragflow 作为一款创新的开源 RAG 引擎,为解决当前 RAG 应用中存在的诸多问题提供了全面而有效的解决方案 。它以其深度文档理解、模板化分块、减少幻觉、异构数据源兼容性以及自动化工作流等强大功能和优势,在众多 RAG 工具中脱颖而出 。无论是处理复杂的企业文档,还是构建智能问答系统,ragflow 都能展现出卓越的性能,为用户提供高质量的服务 。

随着人工智能技术的不断发展,RAG 应用的前景将更加广阔 。ragflow 有望在未来的发展中,不断优化和完善自身的功能,进一步提升 RAG 的效果和应用体验 。它可能会与更多先进的技术相结合,如多模态技术,实现对图像、音频等多种类型数据的更深入理解和处理,为用户带来更加丰富和智能的交互体验 。相信在 ragflow 等优秀工具的推动下,RAG 技术将在更多领域发挥重要作用,为人们的生活和工作带来更多的便利和创新 。如果你对 RAG 技术感兴趣,不妨尝试使用 ragflow,开启你的智能知识管理之旅 。

如何学习AI大模型 ?

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓

CSDN粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

👉1.大模型入门学习思维导图👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

👉2.AGI大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。

在这里插入图片描述
在这里插入图片描述

👉3.大模型实际应用报告合集👈

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

👉4.大模型落地应用案例PPT👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)

在这里插入图片描述

👉5.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
img

在这里插入图片描述

👉6.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)

在这里插入图片描述
👉学会后的收获:👈
基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习

CSDN粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)
### RAGFlow 在 Windows 上的安装与配置问题 #### WSL-Ubuntu 的安装 WSL-Ubuntu 提供了一种在 Windows 上运行 Linux 环境的方法,这对于部署 RAGFlow 至关重要。通过安装 WSL-Ubuntu 可以创建一个兼容的开发环境[^1]。 ```bash wsl --install -d Ubuntu ``` #### 清华大学软件源的配置(可选) 为了加速包管理器的操作并提高下载速度,可以考虑使用清华大学开源镜像站作为 apt-get 的源地址之一。这一步不是强制性的但是推荐执行以优化后续操作效率。 #### 更新系统及安装构建工具 确保系统的最新状态以及必要的编译工具链已经就绪对于顺利搭建任何项目都是非常重要的。此过程涉及更新现有的软件列表并将一些基础组件加入到环境中来支持更复杂的安装需求。 ```bash sudo apt update && sudo apt upgrade -y sudo apt install build-essential cmake pkg-config -y ``` #### Miniconda3 的安装 Miniconda 是 Anaconda 发行版的一个轻量级替代品,它提供了 conda 这一强大的包管理和环境管理系统。利用 Conda 创建隔离的工作区有助于避免不同依赖项之间的冲突,并简化 Python 应用程序及其所需库文件的管理工作流。 ```bash wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh bash ~/miniconda.sh -b -p $HOME/miniconda echo 'export PATH="$HOME/miniconda/bin:$PATH"' >> ~/.bashrc source ~/.bashrc ``` #### CUDA Toolkit 的设置 如果计划让模型训练过程中充分利用 GPU 加速,则需要正确安装 NVIDIA 开发者提供的 CUDA 工具集。注意要选择与显卡驱动相匹配且被目标框架所支持的具体版本号。 #### Git LFS 的集成 大型二进制数据集通常不适合直接提交至常规版本控制系统内;而 GitHub 推荐的方式就是借助 Git Large File Storage 来处理这类资源。完成该服务端口绑定之后便能更好地同步远程仓库中的大尺寸附件了。 ```bash git lfs install ``` #### Hugging Face 缓存路径调整 当频繁访问预训练好的 NLP 模型参数时,默认保存位置可能会占用过多磁盘空间甚至影响性能表现。因此建议自定义这些权重文件夹的位置以便于维护和迁移。 ```bash mkdir -p /path/to/cache/directory echo "transformers.cache=/path/to/cache/directory" >~/.huggingface-cache.cfg ``` #### 调整 `vm.max_map_count` 参数 Elasticsearch 或其他基于 JVM 构建的服务可能因为内存映射区域不足而导致启动失败等问题出现。适当增大这个内核级别的限制值能有效预防此类异常情况的发生。 ```bash sysctl -w vm.max_map_count=262144 ``` #### Docker Engine 的引入 容器化技术已经成为现代 DevOps 实践不可或缺的一部分,在这里选用 Docker 作为主要载体承载整个应用栈。按照官方文档指导顺利完成其本身及相关插件的装配工作后即可继续下一步骤。 #### NGINX Web Server 的安置 作为一个高性能 HTTP 和反向代理服务器,Nginx 不仅能在生产环境下分担流量压力还能增强安全性防护措施。根据实际业务场景定制相应的配置模板从而实现最佳用户体验效果。 #### 设置环境变量 合理规划全局范围内生效的各种常量字符串或数值类型的数据集合有利于减少硬编码来的风险隐患同时也方便后期调试排查故障所在之处。务必确认所有必需的关键字均已准确无误地写入 `.env` 文件当中去。 #### Libgdiplus 组件加载 针对 .NET Core 应用而言有时会遇到图形绘制方面的需求此时就需要额外安装备份方案即 Mono Project 下属产品——libgdiplus 。遵循提示依次完成命令行指令输入直至显示成功消息为止。 ```bash sudo apt-get install libgdiplus -y ``` #### 局部部署 RAGFlow 最后依照官方给出的手册逐步实施最终环节直到应用程序完全上线可用。期间密切关注日志输出寻找潜在的风险点及时作出响应调整策略确保整体流程顺畅结束。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值