本文整理不易,如有疏漏欢迎指正。
若内容对你有启发,不妨点个 赞 + 收藏,方便以后查阅,也让更多开发者看到~

前置知识

1.介绍

RagFlow 是一个开源项目,其源代码托管在 GitHub 上(通常为:https://github.com/infiniflow/ragflow),采用宽松的开源许可证(如 Apache 2.0 或 MIT),允许用户自由使用、修改和分发,适用于个人、研究和商业用途。

RagFlow 是基于 检索增强生成(Retrieval-Augmented Generation, RAG) 技术构建的一个企业级文档问答与知识处理平台。它的核心目标是帮助用户将非结构化的文档(如 PDF、Word、Excel、PPT、网页等)转化为可检索、可问答的知识系统。

主要功能与作用包括:

  1. 多格式文档解析
    • 支持上传并解析多种文件格式,包括:
      • PDF(含扫描件 OCR)
      • Word、Excel、PPT
      • HTML、TXT、Markdown 等
    • 使用先进的布局识别技术(如 PaddleOCR、LayoutParser)精准提取文本、表格、图像标题等结构信息。
  2. 智能知识抽取与向量化
    • 将文档内容切片(chunking),结合语义理解进行向量化(embedding),存储到向量数据库中(如 Milvus、Weaviate、Elasticsearch 等)。
    • 支持自定义分段策略,保留上下文完整性。
  3. 基于 RAG 的精准问答
  • 用户提问时,系统先从知识库中检索最相关的文档片段,再结合大语言模型(LLM)生成准确、有依据的回答。
  • 回答附带原文引用,提升可信度和可追溯性。
  1. 可视化工作流编排(Flow)
  • 提供图形化界面,让用户自定义数据处理流程(如清洗、转换、路由等),实现“低代码”配置 RAG 流程。
  • 类似于 LangChain + UI 的理念,但更专注于企业文档场景。
  1. 支持私有化部署 & 数据安全
  • 可部署在本地或私有云环境,保障敏感数据不外泄。
  • 适合金融、医疗、法律等对数据隐私要求高的行业。
  1. 集成多种 LLM 和 Embedding 模型
  • 支持接入主流大模型,如:
    • 国内:通义千问、百川、ChatGLM、讯飞星火等
    • 国外:GPT、Claude、Llama 系列等
  • 可灵活切换模型服务提供商。
  1. 多租户与权限管理
  • 支持企业级用户体系,不同团队可拥有独立的知识空间和访问控制

2.对比

ragflow和dify对比,优点是什么?

这是一个非常实用的问题!RagFlowDify 都是当前热门的开源低代码 AI 应用开发平台,都支持构建基于大模型的知识问答、Agent 等功能。但它们的定位、技术路线和适用场景有显著差异

下面从多个维度进行详细对比,并重点说明 RagFlow 相对于 Dify 的核心优势(优点)


一、整体定位对比

维度 RagFlow Dify
主要目标 企业级文档智能:精准解析 + 深度检索 + 可信问答 通用 AI 应用开发平台:LLM 编排 + Agent + API 服务
核心能力 强在 复杂文档处理与 RAG 效果优化 强在 可视化工作流编排与 AI Agent 构建
用户群体 企业知识库、金融/法律/医疗等专业文档场景 开发者、产品经理、创业者快速搭建 AI 应用
是否强调“可解释性” ✅ 极其重视(回答带原文引用) ⚠️ 支持,但非首要目标

二、RagFlow 相对于 Dify 的优点举例:

  1. 更强的文档解析与结构识别能力(核心优势)
能力 RagFlow Dify
PDF 解析(含扫描件) ✅ 使用 PaddleOCR + Layout Parser,识别标题、表格、公式布局 ❌ 基础 OCR,结构还原弱
表格内容提取 ✅ 完整还原 Excel 式表格数据,保留行列关系 ⚠️ 易丢失格式,变成纯文本
多级标题识别 ✅ 自动识别 H1/H2/H3,用于上下文增强 ⚠️ 不够精细
公式/代码块处理 ✅ 特殊区块独立处理 ❌ 通常混入正文

📌 应用场景举例

  • 你上传一份《劳动合同范本》PDF,里面有多个章节、表格薪资标准。
  • RagFlow 能准确切分“第五条 工作时间”并保留表格原意
  • Dify 可能将表格打散成句子,影响检索准确性

总结:

1.dify适合编排,ragflow适合知识库检索

2.最佳组合模式

角色 平台 职责
🧠 大脑(记忆中枢) RagFlow 存储和检索真实知识,保证答案准确
🗣️ 嘴巴(交互层) Dify 理解用户、组织语言、多轮对话
🤖 身体(行动力) Dify Agent 能调用数据库、发邮件、创建工作单等

开始安装

RagFlow是以linux容器docker的方式运行,

如果是windows,需要启用wsl

同时安装Docker desktop

(前面的文章有安装步骤)

1.拉

安装RagFlow

git clone https://github.com/infiniflow/ragflow.git

cd ragflow

将ragflow解压到一个文件夹(最好没有中文目录)

image-20251028084226389

image-20251028084746321

将docker改名ragflow方便后续管理(容器启动自动以其命名)

进入ragflow启动cmd

介绍目录:

image-20251028085658882

yml是配置文件,默认使用docker-compose.yml

evn文件是对ragflow的docker提供环境变量,在docker-compose.yml中可以引用这些环境变量

打开env文件默认安装的是slim(精简)版本,也就是不带词嵌入模型的(建议默认配置不用动),如果安装完整版要10几个G,后期可以根据自己的需要安装词嵌入Embedding模型

image-20251028090231849

取消该行注释,使用国内大模型远程库

然后在cmd输入,docker-compose up -d,拉取docker镜像

image-20251028090503309

没有启动docker

启动后重拉

image-20251028093446678

大概率网络问题,重新运行命令即可

image-20251028093522165

2.配

拉取完成,只是端口冲突

将端口改成9080

image-20251028095349743

文章最后有端口介绍

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

正常启动了!

3.用

image-20251028100711864

我是通过 localhost:9080 (根据你设定的端口来) 访问到前端页面的

image-20251028101351418

启动ollama=》点击我的=》模型供应=》选择olaama,填入如图配置

#需要提前下载配置
deepseek-r1:7b

http://host.docker.internal:11434

如果只有ollama没有模型

新开cmd

#拉取词嵌入模型到本地
ollama pull bge-m3:latest

继续添加词嵌入模型。

image-20251028104405048

注意model name 末尾可能需要latest,可能不用。需要尝试

配置为默认模型

image-20251028104644341

常见问题

1.gpu加速

如果你的电脑有gpu,用到词嵌入等模型,是否速度很慢?到底用没用gpu呢?

1.ragflow只负责调度,ollama才是决定使用gpu

2.ollama会自动优先使用gpu,如果没有,会回退到cpu

3.如果实在不放心,可以cmd 里ollama serve 观察打印信息

注意:如果上传的是pdf,ragflow会启动OCR进行识别信息,此时用到的是ragflow的默认配置,如果cpu版本可能较慢,gpu会明显加速

2.知识库解析简单的文件也一直停留在百分之零点几?

可能是linux虚拟内存太小

打开cmd,进入wsl,输入 free -h

观察

image-20251028165212552

你的swap是不是只有2个G?

依次执行下面命令

 sudo fallocate -l 8G /swapfile
 
 sudo chmod 600 /swapfile
 
 sudo mkswap /swapfile
  
 sudo swapon /swapfile
 
 #观察是swap否变为9G
 free -h
 
 #持久化(不然下次还得重新写)
  sudo nano /etc/wsl.conf
  
#添加以下内容:

[boot]
command = "swapon /swapfile"
  
 #保存退出(Ctrl+O → 回车 → Ctrl+X)。
  

端口介绍

端口 = 计算机上的“门牌号”

  • IP 地址是“街道地址”,端口是“房间号”。
  • 当别人访问你的服务(如网页、API),必须通过一个端口进入。
  • 每个端口在同一时间只能被一个程序占用

端口分类:哪些能用?哪些不能碰?

类型 范围 是否建议使用 常见用途
🔴 知名端口(Well-Known Ports) 0 - 1023 ❌ 禁止随意使用 HTTP(80)、HTTPS(443)、SSH(22)、FTP(21)
🟡 注册端口(Registered Ports) 1024 - 49151 ⚠️ 可用,但需查重 MySQL(3306)、Redis(6379)、Docker API(2375)
🟢 动态/私有端口(Ephemeral) 49152 - 65535 ✅ 安全可用 临时连接、内部通信

绝对不要随便占的端口(危险区)

端口 服务 风险
80 Web HTTP Windows/IIS 常默认占用 → 启动失败
443 Web HTTPS 同上,还可能影响浏览器
22 SSH Linux 远程登录专用
53 DNS 域名解析核心服务,极其敏感
25 / 465 / 587 邮件 SMTP 企业邮件系统在用
3389 Windows 远程桌面 (RDP) 安全高危,别暴露

如何判断某个端口是否可用?

方法 1:Windows 查看端口占用(管理员 PowerShell)

netstat -ano | findstr :9080

如果没有输出,说明 9080 空闲。

如果有输出,最后一列是 PID,可以用:

tasklist /FI "PID eq 1234"

查看是谁在用。

方法 2:Linux/macOS

lsof -i :9080
# 或
netstat -tuln | grep 9080
ows 远程桌面 (RDP) | 安全高危,别暴露                  |



如何判断某个端口是否可用?

方法 1:Windows 查看端口占用(管理员 PowerShell)

netstat -ano | findstr :9080


如果没有输出,说明 `9080` 空闲。

如果有输出,最后一列是 PID,可以用:

tasklist /FI “PID eq 1234”


查看是谁在用。

方法 2:Linux/macOS

lsof -i :9080

netstat -tuln | grep 9080
``

本文整理不易,如有疏漏欢迎指正。
若内容对你有启发,不妨点个 赞 + 收藏,方便以后查阅,也让更多开发者看到~

Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐