🌐 官方网站: https://www.knowflowchat.cn/
📺 B站视频: https://www.bilibili.com/video/BV1Vfg8zDEUf/
KnowFlow 是一个基于 RAGFlow 的企业级开源知识库解决方案,专注于为企业提供真正落地的最后一公里服务。我们持续兼容 RAGFlow 官方版本(当前适配 RAGFlow v0.20.1),同时将社区最佳实践整合进来,为企业知识管理提供更加完善的解决方案。
- RAGFlow 企业落地的最后一公里:解决从开源到生产的关键差距
- 插件化增强平台:通过独立服务方式扩展 RAGFlow 功能
- 企业级知识管理系统:提供完整的用户权限、团队协作、数据安全保障
KnowFlow 采用分布式微服务架构,通过独立的服务组件为 RAGFlow 提供增强功能:
graph TB
subgraph "用户端"
User[👤 用户]
Browser[🌐 浏览器]
User --> Browser
end
subgraph "RAGFlow 生态系统"
direction TB
subgraph "RAGFlow 核心服务"
RF_Frontend[RAGFlow 前端<br/>端口: 80/443]
RF_Backend[RAGFlow 后端<br/>端口: 9380]
RF_DB[(RAGFlow 数据库<br/>MySQL)]
RF_ES[(Elasticsearch<br/>端口: 9200)]
RF_Minio[(MinIO 存储<br/>端口: 9000)]
RF_Redis[(Redis 缓存<br/>端口: 6379)]
end
subgraph "KnowFlow 扩展服务"
direction TB
KF_Backend[KnowFlow 后端<br/>端口: 5000<br/>• 用户管理<br/>• 团队协作<br/>• OCR引擎集成<br/>• API Token管理]
KF_Gotenberg[Gotenberg 文档转换<br/>端口: 3000<br/>• PPT/Word/Excel转PDF<br/>• 文档格式标准化]
subgraph "OCR 解析引擎(可选配置)"
MinerU_API[MinerU API 服务<br/>端口: 8000<br/>• 行级精度 OCR<br/>• 图像提取<br/>• 文档结构分析]
MinerU_VLM[VLM 视觉模型<br/>端口: 30000<br/>• 图像理解<br/>• 多模态分析]
DOTS_API[DOTS OCR 服务<br/>端口: 8001<br/>• 行级精度 OCR<br/>• 快速解析]
PaddleOCR_API[PaddleOCR 服务<br/>端口: 8888<br/>• 块级布局识别<br/>• 标题层级推断]
end
end
end
%% 用户访问流程
Browser --> RF_Frontend
%% RAGFlow 内部服务通信
RF_Frontend --> RF_Backend
RF_Backend --> RF_DB
RF_Backend --> RF_ES
RF_Backend --> RF_Minio
RF_Backend --> RF_Redis
%% RAGFlow 与 KnowFlow 集成
RF_Frontend -.->|API 调用| KF_Backend
RF_Backend -.->|共享数据库| RF_DB
%% KnowFlow 内部服务通信
KF_Backend --> KF_Gotenberg
KF_Backend -.-> MinerU_API
KF_Backend -.-> DOTS_API
KF_Backend -.-> PaddleOCR_API
MinerU_API -.-> MinerU_VLM
%% KnowFlow 与 RAGFlow 数据层集成
KF_Backend --> RF_DB
KF_Backend --> RF_ES
KF_Backend --> RF_Minio
KF_Backend --> RF_Redis
架构特点:
- 🔌 独立服务:KnowFlow 作为独立微服务运行,不修改 RAGFlow 核心代码
- 🔗 API 集成:通过 RESTful API 与 RAGFlow 前端无缝集成
- 💾 共享数据层:复用 RAGFlow 的数据库、存储等基础设施
- ⚡ 多引擎支持:集成 MinerU、DOTS、PaddleOCR 三种 OCR 引擎,灵活选择
- 📄 格式转换:内置 Gotenberg 服务,支持多种文档格式转换
| 📚 智能文档解析 | 🧠 增强检索问答 | 👥 企业级管理 | 🔌 开放集成 |
|---|---|---|---|
| • 三种OCR引擎可选 • MinerU/DOTS/PaddleOCR • 多种分块策略 • 20+文档格式支持 |
• 精准语义检索 • 上下文感知问答 • 多模态内容理解 • 实时知识更新 |
• RBAC权限管理 • 团队协作空间 • 纯离线部署 • 企业微信集成 • LDAP/SSO支持 |
• 插件化架构 • API开放接口 • 自定义扩展 • 第三方系统集成 |
| 🌟 | KnowFlow 优势 |
|---|---|
| 🔌 | 插件化架构:无缝兼容 RAGFlow 任意版本,所有增强均可热插拔,升级无忧 |
| 🏗️ | 微服务设计:通过独立服务方式增强 RAGFlow,不修改核心代码 |
| 🧩 | 分块策略丰富:支持多种分块算法,检索更精准,适配多场景文档 |
| 🏢 | 企业级特性:三种OCR引擎(MinerU/DOTS/PaddleOCR)、RBAC权限管理、纯离线部署、企业微信、LDAP/SSO |
| 📈 | 最佳实践集成:持续吸收社区优质方案,助力企业高效落地 |
| 🔧 | 简化部署:一键安装脚本,Docker Compose 开箱即用 |
- Docker 20.10+
- Docker Compose 2.0+
- 至少 8GB 内存
- 可选:NVIDIA GPU + nvidia-container-toolkit(GPU加速)
git clone https://github.com/weizxfree/KnowFlow.git
cd KnowFlow/docker配置文件位于:docker/knowflow-server/settings.yaml
# 从模板创建配置文件
cp knowflow-server/settings.yaml.example knowflow-server/settings.yaml
# 编辑配置文件,配置 MinerU/DOTS 服务地址
vim knowflow-server/settings.yaml配置示例:
# MinerU 服务配置
mineru:
default_backend: "pipeline"
fastapi:
url: "http://localhost:8000" # 👈 修改为 MinerU 服务地址
timeout: 60000
# DOTS 服务配置(可选)
dots:
vllm:
url: "http://localhost:8000" # 👈 修改为 DOTS 服务地址
model_name: "dotsocr-model"
timeout: 60000
# PaddleOCR 服务配置(可选)
paddleocr:
url: "http://localhost:8888" # 👈 修改为 PaddleOCR 服务地址
timeout: 30000部署场景配置:
- 同服务器部署:
http://localhost:8000 - 远程服务器部署:
http://192.168.1.101:8000 - Docker 网络部署:
http://knowflow-mineru-api:8000
详细配置说明:docker/knowflow-server/README.md
KnowFlow 支持 MinerU、DOTS 和 PaddleOCR 三种 OCR 服务,可根据需求选择部署。
# 进入 MinerU 目录
cd mineru/
# 启动 MinerU API 服务
docker compose up -d
# 查看服务状态
docker compose ps
docker compose logs -f服务端口:
- MinerU API: 8000
- MinerU VLM (可选): 30000
# 进入 DOTS 目录
cd dots/
# 下载 DOTS 模型
pip install modelscope
modelscope download --model rednote-hilab/dots.ocr --local_dir ./weights/DotsOCR
# 启动 DOTS 服务
docker compose up -d
# 查看服务状态
docker compose ps
docker compose logs -f服务端口:
- DOTS OCR: 8000
# 进入 PaddleOCR 目录
cd paddleocr/
# 启动 PaddleOCR 服务
docker compose up -d
# 查看服务状态
docker compose ps服务端口:
- PaddleOCR API: 8888
PaddleOCR 特点:
- ✅ 块级布局识别:支持 7+ 种
block_label类型(doc_title、paragraph_title 等) - ✅ 自动标题层级推断:基于
block_label自动映射到 H1-H6 ⚠️ 块级坐标精度:返回块级坐标(非行级)- 🎯 适用场景:Title/Regex 分块方法、需要标题层级区分的文档
详细说明:docker/paddleocr/README.md
💡 提示:三种 OCR 服务可以同时配置,系统会根据用户选择的布局解析器调用对应服务。建议端口配置:MinerU (8000)、DOTS (8001)、PaddleOCR (8888)。
返回 docker 目录,启动主服务:
# 返回 docker 目录
cd ..
# 选择部署模式
# 有 GPU:
docker compose -f docker-compose-gpu.yml up -d
# 无 GPU:
docker compose up -d
# 查看服务状态
docker compose ps
# 查看日志
docker compose logs -f- 🌐 前端地址:
http://服务器IP或http://localhost - 🔌 API 地址:
http://服务器IP:9380
邮箱:admin@gmail.com
密码:admin
💡 安全提示:首次登录后请立即修改默认密码!
- Python 3.9+
- Node.js 16+
- pnpm
- MinerU 服务(参考上述步骤)
- 安装 Python 依赖
cd knowflow/server
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt- 启动文件转换服务(可选)
# 支持 PDF 以外文件格式需要启动此服务
docker run -d -p 3000:3000 gotenberg/gotenberg:8- 执行 install 脚本,初始化环境变量
cd knowflow/
./scripts/install.sh --local- 启动 knowflow 后端服务
python3 app.py- 修改 docker/entrypoint.sh 文件
# 注释掉 nginx 行
# /usr/sbin/nginx- 激活 Python 虚拟环境
source .venv/bin/activate
export PYTHONPATH=$(pwd)- 配置 HuggingFace 镜像(可选)
# 如果无法访问 HuggingFace,设置镜像站点
export HF_ENDPOINT=https://hf-mirror.com-
检查配置文件 确保
conf/service_conf.yaml中所有主机和端口配置正确。 -
启动后端服务
方案一:
# 设置内存分配器和启动任务执行器
JEMALLOC_PATH=$(pkg-config --variable=libdir jemalloc)/libjemalloc.so
LD_PRELOAD=$JEMALLOC_PATH python rag/svr/task_executor.py 1
# 启动 API 服务器
python api/ragflow_server.py方案二:
./local_entrypoint.sh- 安装 Node.js 依赖
cd web
pnpm install- 启动开发服务器
pnpm dev浏览器访问启动后的地址,即可进入系统。
基于 RAGFlow v0.20.1 二次开发,提供更加现代化的用户界面:
管理员可以进行统一的管理:
核心特性:
- RBAC权限管理:基于角色的访问控制,精细化权限分配
- 纯离线部署:支持完全离线环境部署,满足高安全性要求
- 移除前端用户注册通道,管理员统一管理用户
- 用户管理、团队管理、模型配置管理
- 新用户自动加入创建时间最早用户的团队
- 继承团队模型配置,降低配置复杂度
支持格式: PPT、PNG、Word、DOC、Excel 等 20+ 种常见文件格式
分块策略:
- 文档结构分块:基于文档原生结构进行智能分块
- 按标题分块:根据标题层级自动划分内容块
- RAGFlow 原分块:保持与官方完全一致的分块规则
- 父子分块:父块较大用于补充上下文,子块用于向量检索
- DOTS 解析:先进的文档智能解析引擎,支持复杂版式和多模态内容
支持企业微信应用,可将企业微信作为聊天机器人入口:
详细配置方式参照 server/services/knowflow/README.md
# 后端镜像
docker buildx build --platform linux/amd64 --target backend -t zxwei/knowflow-server:v0.3.0 --push .
# 前端镜像
docker buildx build --platform linux/amd64 --target frontend -t zxwei/knowflow-web:v0.3.0 --push .# 安装 uv
sudo snap install astral-uv --classic
# 安装 libicu
sudo apt-get update
sudo apt-get install -y python3.12-dev build-essential pkg-config libicu-dev
uv run download_deps.py
docker build -f Dockerfile.deps -t infiniflow/ragflow_deps .
docker build --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .
docker tag infiniflow/ragflow:nightly-slim zxwei/knowflow:v2.0.2
docker push zxwei/knowflow:v2.0.2
vim docker/.env
RAGFLOW_IMAGE=infiniflow/ragflow:nightly-slim
- 支持更多文档格式的 MinerU 解析
- 增强 MarkDown 文件的分块规则
- 优化 Excel 文件分块
- MinerU 2.0 接入
- RAGFlow 前端 UI 源码开源
- API Token 自动生成机制
- MinerU 支持自动问题,自动关键词,Raptor,知识图谱
- 文档审批工作流
安装 nvidia-container-toolkit
# 添加源
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# 安装组件
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# 重启 Docker
sudo systemctl restart docker
KnowFlow 采用 GNU Affero General Public License v3.0 (AGPL-3.0) 开源许可证。
- 使用:个人学习、研究、开发和部署
- 修改:根据需要修改源代码
- 分发:分享给他人使用
- 贡献:提交 PR 和 Issue,参与开源协作
- 源码开放:如果您修改了 KnowFlow 并通过网络提供服务,必须向用户提供修改后的完整源代码
- 相同许可:基于 KnowFlow 的衍生作品必须同样采用 AGPL-3.0 许可证
- 版权保留:保留原始版权声明和许可证信息
AGPL-3.0 允许商业使用,但有重要约束:
- 如果您将修改版本作为网络服务提供,必须开源所有修改
- 如果这不符合您的商业需求,请联系获取商业许可
- 💬 微信:skycode007(备注"商业授权咨询")
注意:AGPL-3.0 是一个严格的 copyleft 许可证,特别适用于网络服务。使用前请仔细阅读 完整许可证条款。
如有需求或问题建议,可加入交流群讨论。
加微信 skycode007,备注"加群"即可。
项目持续更新中,更新日志会在微信公众号 [KnowFlow 企业知识库] 发布,欢迎关注。
本项目基于以下开源项目开发:
- ragflow - 核心 RAG 框架
⭐ 如果这个项目对您有帮助,请不要忘记点个 Star!
🚀 让我们一起构建更好的企业知识库解决方案!






