企业知识管理一直存在"文档散落、检索低效、权限失控"三个老大难;而且知识库往往有私有化部署的需求。本文记录若依(RuoYi-Vue3)前后端分离架构与 RAGFlow 深度文档检索引擎的完整集成实战:若依做业务底座(权限、组织、审计),RAGFlow 做检索大脑(解析、向量、溯源),各取所长,落地一套真正可用的的知识库检索系统。
一、为什么是想要探索搭建私有化知识库
先看落地场景的三个典型痛点:
| 痛点 | 现状 | 后果 |
|---|---|---|
| 文档散落 | 制度、规程、台账分散在个人电脑、共享盘、旧系统 | 找不到、版本混乱、人走文档丢 |
| 检索低效 | 靠文件名搜索、人工翻找 | 问一个问题翻半小时 |
| 权限失控 | 知识库对所有人可见或完全不可见 | 越权访问、该看的看不到 |
同时,政企类用户对数据安全有硬性要求:核心资料不允许出内网。这决定了方案必须私有化部署,而不是调用公网 SaaS。
二、技术选型:为什么是 RuoYi + RAGFlow
2.1 若依做底座:企业级能力开箱即用
- 前后端分离:Vue3 + Element Plus 前端,Spring Boot 后端,工程结构清晰,二次开发成本低;
- 完善的权限体系:用户、角色、菜单、按钮四级权限,配合部门数据权限,可以做到"财务部只能看财务部的知识库";
- 成熟的管理后台能力:代码生成、操作日志、定时任务、文件上传、字典管理,这些企业系统的"基础设施"不用从零写;
- 社区活跃:RuoYi 是国内使用量巨大的开源后台框架之一,开发团队上手快,交付风险低。
2.2 RAGFlow 做检索大脑:专业的事交给专业的引擎
- 深度文档理解:版面分析、表格抽取、OCR、多页 PDF 解析,对中文文档、扫描件、制度文件这类资料效果显著;
- 混合检索 + 引用溯源:向量检索 + 关键词检索结合,回答自带引用来源(原文片段、文档名),结果可验证,这是企业知识库可信度的关键;
- 开源可私有化:代码开源、Docker 一键部署,数据完全在内网闭环;
- 算力门槛低:RAG 方案不需要训练、不需要微调模型,在向量化和文档解析方面无 GPU 也能跑
2.3 两者的结合点:各司其职
┌──────────────────────────────────────────────────────────┐
│ 若依(业务底座) │
│ 用户 / 角色 / 部门 / 菜单权限 │
│ 知识库管理 · 文档管理 · 助手管理 · 会话管理 │
│ ↓ 通过 HTTP API 调用(REST,内网) │
├──────────────────────────────────────────────────────────┤
│ RAGFlow(检索引擎) │
│ 文档解析 → 向量化 → 检索 → 引用溯源 → 生成回答 │
└──────────────────────────────────────────────────────────┘
核心思想:若依管"人、权、业务",RAGFlow 管"文档、检索、生成"。两者通过 REST API 解耦,互不侵入,任何一方升级都不影响另一方。
三、整体架构与调用链路
浏览器(Vue3 + Element Plus)
│
▼
若依后端(Spring Boot 3 + JDK17)
├── 认证鉴权(Spring Security + JWT)
├── 知识库业务模块(8 个功能模块)
└── RagFlowApiClient(封装 RAGFlow REST API)
│
▼
RAGFlow 服务(Docker 私有化部署,v0.27.0)
├── 文档解析引擎(版面分析 / OCR / 表格抽取)
├── 向量化(Embedding:BAAI/bge-m3)
├── 重排序(Rerank:BAAI/bge-reranker-v2-m3)
├── 对话生成(LLM:DeepSeek-V4-Flash)
└── 向量库 / 文档存储
一次问答的完整链路:
- 用户在浏览器提问;
- 前端携带 JWT 请求若依后端;
- 若依后端调用ragFlow对话接口,发起流式问答;
- RAGFlow 检索相关文档片段 → 重排序 → 交给大模型生成;
- 结果以 SSE 流式返回前端,边生成边显示,同时返回引用来源。
四、系统功能总览:8 个模块
整个系统共 8 个功能模块,覆盖"模型 → 知识库 → 文档 → 提示词 → 助手 → 会话 → 问答"完整链路:
| 模块 | 作用 |
|---|---|
| 模型管理 | 维护三类模型:向量化模型、重排序模型、大语言模型,支持多平台配置与在线验证 |
| 知识库管理 | 创建/管理知识库,配置向量化模型、分片解析模板、开放范围(在这里控制权限) |
| 知识库文档 | 文档上传、批量解析、解析状态跟踪 |
| RAG 提示词 | 维护对话助手使用的系统提示词模板 |
| 对话助手管理 | 将"知识库 + 大模型 + 提示词"绑定为一个可对话的助手 |
| RAG 会话明细 | 记录每次问答的详细过程 |
| 用户会话管理 | 按用户维度管理会话历史 |
| AI 智能问答 | 面向最终用户的工作台:选择助手、发起对话、查看引用 |
——助手工作台,支持拖动卡片调整助手顺序,每个助手绑定一个知识库,用户选一个助手即可开始对话。
五、开发环境
| 项 | 配置 |
|---|---|
| 后端 | JDK 17 + Spring Boot 3.x(RuoYi-Vue3 3.9.2) |
| 前端 | Vue3 + Element Plus + Vite |
| RAGFlow | v0.27.0,Docker 部署 |
| 开发机 | CPU 10 核 / 内存 32G / 无 GPU(笔记本) |
| 模型 | 开发环境使用硅基流动线上 API(简化本地环境、提升开发效率):BAAI/bge-m3(向量化)、BAAI/bge-reranker-v2-m3(重排序)、deepseek-ai/DeepSeek-V4-Flash(对话) |
说明:开发阶段用线上大模型是为了快速迭代;生产环境可平滑替换为本地模型,实现完全私有化(具体下篇再写吧。。)
六、总结一下
RuoYi + RAGFlow 的组合,本质是**"成熟业务底座 + 专业 RAG 引擎"的互补**:若依解决"谁能看、看什么、怎么管",RAGFlow 解决"文档怎么进、怎么检、怎么答"。方案不训练模型、不依赖 GPU,普通服务器即可私有化落地,非常适合制度问答、档案检索、知识沉淀等企业场景。