RuoYi + RAGFlow 搭建私有化知识库完整集成实践

0 阅读5分钟

企业知识管理一直存在"文档散落、检索低效、权限失控"三个老大难;而且知识库往往有私有化部署的需求。本文记录若依(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)
   └── 向量库 / 文档存储

一次问答的完整链路

  1. 用户在浏览器提问;
  2. 前端携带 JWT 请求若依后端;
  3. 若依后端调用ragFlow对话接口,发起流式问答;
  4. RAGFlow 检索相关文档片段 → 重排序 → 交给大模型生成;
  5. 结果以 SSE 流式返回前端,边生成边显示,同时返回引用来源。

四、系统功能总览:8 个模块

整个系统共 8 个功能模块,覆盖"模型 → 知识库 → 文档 → 提示词 → 助手 → 会话 → 问答"完整链路:

模块作用
模型管理维护三类模型:向量化模型、重排序模型、大语言模型,支持多平台配置与在线验证
知识库管理创建/管理知识库,配置向量化模型、分片解析模板、开放范围(在这里控制权限)
知识库文档文档上传、批量解析、解析状态跟踪
RAG 提示词维护对话助手使用的系统提示词模板
对话助手管理将"知识库 + 大模型 + 提示词"绑定为一个可对话的助手
RAG 会话明细记录每次问答的详细过程
用户会话管理按用户维度管理会话历史
AI 智能问答面向最终用户的工作台:选择助手、发起对话、查看引用

——助手工作台,支持拖动卡片调整助手顺序,每个助手绑定一个知识库,用户选一个助手即可开始对话。

五、开发环境

配置
后端JDK 17 + Spring Boot 3.x(RuoYi-Vue3 3.9.2)
前端Vue3 + Element Plus + Vite
RAGFlowv0.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,普通服务器即可私有化落地,非常适合制度问答、档案检索、知识沉淀等企业场景。