最近我又肝了一个新项目:企业智能知识库系统。
这个项目非常实用,可以直接写到简历中,很加分,里面有很多有意思的功能。
简单说:让企业里的知识真正流动起来。
你在公司里是不是经常遇到这些情况:
企业智能知识库系统就是为解决这些问题而生的。
它覆盖了从文档创建、分类存储、混合智能检索、权限审批、版本管理,到 AI 智能问答、AI写作、知识图谱分析的全链路。
维度 | 数据 |
|---|---|
后端微服务模块 | 10个 |
Java 源文件 | 192个 |
REST API 端点 | 近200个 |
前端功能页面 | 34个 |
数据库(MySQL) | 9个,共 29 张业务表 |
中间件集成 | 7种(Redis、ES、MongoDB、Neo4j、RabbitMQ、Nacos、RustFS) |
后端代码量 | 20,000+ 行 Java |
前端代码量 | 16,000+ 行 TypeScript/TSX |
总代码量 | 36,000+ 行 |
它是按照阿里巴巴 Java 开发规范、遵循企业级架构标准的生产级系统。

技术 | 版本 | 在项目里的实际用途 |
|---|---|---|
Java | 21 LTS | 虚拟线程、Record类、模式匹配 |
Spring Boot | 3.2.0 | 所有微服务的基础框架 |
Spring Cloud | 2023.0.0 | 微服务治理、服务间调用 |
Spring Cloud Alibaba | 2023.0.1.0 | Nacos 注册中心 & 配置中心集成 |
Spring Cloud Gateway | - | 统一 API 网关、路由转发、CORS |
MyBatis Plus | 3.5.8 | 所有数据库的 ORM 操作 |
Druid | 1.2.20 | 数据库连接池 + SQL 监控 |
MySQL | 8.0 | 9 个业务数据库,22+ 张表 |
Redis | 7.x | 缓存、Session、实时排行榜 |
Elasticsearch | 7.x | 全文检索 + 向量存储 |
MongoDB | 6.x | 文档正文内容存储 |
Neo4j | 5.x | 知识图谱节点和关系存储 |
RabbitMQ | 3.x | 异步消息(转码、索引同步、通知) |
LangChain4j | 0.29.1 | LLM 集成框架,统一模型调用 |
Knife4j | 4.3.0 | 自动生成 Swagger API 文档 |
JWT (JJWT) | 0.12.3 | 无状态身份认证 |
Hutool | 5.8.24 | 通用工具库 |
技术 | 版本 | 在项目里的实际用途 |
|---|---|---|
React | 18.3.1 | 核心 UI 框架 |
TypeScript | 5.3.3 | 严格模式,零类型错误 |
Vite | 5.1.0 | 构建工具,SWC 编译,秒级热更新 |
Ant Design | 5.14.0 | 企业级 UI 组件库,中文 locale |
React Router | 6.22.0 | 客户端路由 + 懒加载 + 权限守卫 |
Zustand | 4.5.0 | 轻量级状态管理 + persist 持久化 |
Axios | 1.6.7 | HTTP 请求 + token 自动刷新 + 重试队列 |
ECharts | 5.6.0 | 数据可视化图表 |
react-markdown | 9.0.1 | Markdown 渲染 + GFM 支持 |
react-syntax-highlighter | 16.1.1 | 代码块语法高亮 |
react-pdf | 10.4.1 | PDF 在线预览 |
mammoth | 1.8.0 | DOCX 转 HTML 预览 |
xlsx | 0.18.5 | Excel 表格解析和预览 |

这系统不是一个 CRUD 壳子。
我把最核心的功能一个一个拆开来说。
从一篇文档的诞生到归档,每个环节都管到了:

详细功能清单:
统一的文件管理平台,不只是存文件,而是全格式在线预览:
类别 | 支持格式 | 预览方式 |
|---|---|---|
react-pdf 渲染,支持缩放、翻页 | ||
Word | .doc / .docx | mammoth 转 HTML 渲染 |
Excel | .xls / .xlsx | SheetJS 解析为交互式表格 |
PPT | .ppt / .pptx | 后端提取幻灯片为图片预览 |
Markdown | .md | react-markdown + 代码高亮 |
纯文本 | .txt | 等宽字体渲染 |
图片 | .png / .jpg / .gif / .bmp / .svg | 原生预览 + 缩略图 |
视频 | .mp4 / .avi / .mov / .mkv / .webm | HTML5 Video + HLS 自适应码率 |
音频 | .mp3 / .wav / .flac / .aac / .ogg | HTML5 Audio 播放 |
压缩包 | .zip / .rar / .7z | 文件列表展示 |
视频文件还支持:
这不是简单的数据库 LIKE 模糊查询,而是基于 Elasticsearch 的企业级搜索引擎:

搜索能力:
这不是调个 API 就完事的"ChatGPT 套壳"。
这套系统实现了一整套 RAG + KAG 双引擎架构:
三种对话模式,适应不同场景:
模式 | 原理 | 适用场景 |
|---|---|---|
标准对话 | 直接调用大模型 | 通用问答、闲聊、写作辅助 |
RAG 对话 | 检索知识库中的相关文档片段,注入 Prompt | "我们公司的支付接口怎么对接?" |
KAG 对话 | 结合知识图谱中的实体关系,增强上下文 | "支付系统和哪些系统有依赖关系?" |
RAG(检索增强生成):

KAG(知识增强生成):

AI 辅助写作:
双模型支持:
基于 Neo4j 图数据库构建知识网络,支持:

完整功能:

















1. 真正的微服务落地,不是"拆模块改个名"
Gateway 的 AuthGlobalFilter 在请求进入时就完成 JWT 校验,提取用户信息后通过 X-User-Id Header 向下游透传。下游服务不再重复处理认证逻辑,只需要从 Header 中读取用户身份即可——关注点分离,代码更清爽。
服务间通信采用 Spring Cloud OpenFeign,用接口+注解的方式定义远程调用,完全不写 HTTP 连接代码。
所有 10 个服务启动后自动注册到 Nacos,支持健康检查、负载均衡、动态上下线。
2. RAG + KAG 双引擎 AI 架构
这不是简单的"接个 ChatGPT API"。
项目实现了一整套可插拔的 AI 引擎架构:
维度 | RAG 引擎 | KAG 引擎 |
|---|---|---|
数据来源 | 文档内容(向量化分块) | 知识图谱(Neo4j实体关系) |
检索方式 | Embedding 向量相似度 + BM25 混合检索 | LLM实体识别 → Neo4j 多跳遍历 |
核心优势 | 语义匹配,理解用户意图 | 结构化推理,发现隐含关联 |
融合策略 | RRF(Reciprocal Rank Fusion)加权融合,权重可调 |
整个 pipeline 可拆解为独立步骤:文档分块(Chunking)→ 文本嵌入(Embedding)→ 向量索引(KNN)→ 混合检索 → 上下文构造 → LLM 生成。
每一个步骤都有独立的 Service 实现,方便替换或升级。
3. 混合搜索(BM25 + 向量)
不是简单的 ES LIKE 模糊查询,而是实现了搜索结果的多路召回 + 融合排序:
用户搜索 "如何提升系统性能"
├── 路径1: BM25 倒排索引关键词匹配 → 命中"性能优化"文档(精确但可能遗漏同义词)
├── 路径2: text-embedding-v3 向量语义匹配 → 命中"系统调优"文档(语义相近但用词不同)
└── RRF 融合: 对两路结果按倒数排名加权融合,输出 Top-K=20 最终结果
向量 embedding 采用阿里云 text-embedding-v3 模型,1024 维向量存入 Elasticsearch 的 dense_vector 字段,支持 KNN 近似最近邻检索。
用户每次搜索异步写入 MySQL,定时任务聚合计算热词排行。
搜索历史支持个人维度管理(查看/清空/导出),热词排行面向全系统展示——既保护个人隐私,又提供全局趋势洞察。
4. RabbitMQ 驱动的事件异步处理
大量耗时操作通过 RabbitMQ 异步解耦,让核心流程保持快速响应:
事件 | 生产者 | 消费者 | 说明 |
|---|---|---|---|
操作日志 | AOP切面 | kb-foundation | 不阻塞业务请求 |
文档索引更新 | kb-document | kb-search/Consumer | 文档发布后异步更新 ES |
RAG 向量化 | kb-document | kb-ai/ReindexConsumer | 文档发布后异步向量嵌入 |
KAG 图谱构建 | kb-document | kb-ai/KAGReindexConsumer | 文档发布后异步构建图谱 |
视频转码 | kb-file | kb-file/TranscodeConsumer | 大文件转码不阻塞上传 |
通知推送 | 各服务 | kb-foundation | 消息异步分发 |
5. 全格式文件预览体系
涵盖 PDF、DOCX、XLSX、PPT、Markdown、TXT、图片、视频(HLS)、音频,用户不需要下载文件就能看到内容。
项目覆盖了企业日常能接触到的几乎所有文件格式,且不需要用户安装任何软件:
类别 | 支持格式 | 预览技术 | 关键库 |
|---|---|---|---|
分页渲染,支持缩放 | react-pdf 10.x | ||
Word | .doc/.docx | HTML 实时转换 | mammoth.js |
Excel | .xls/.xlsx | 交互式数据表格 | SheetJS (xlsx) |
PPT | .ppt/.pptx | 幻灯片逐页预览 | 后端图片提取 |
Markdown | .md | GFM 渲染 + 代码高亮 | react-markdown + PrismJS |
纯文本 | .txt | 等宽字体渲染 | 原生 |
图片 | png/jpg/gif/bmp/svg/webp | 缩略图 + 原图预览 | 原生 |
视频 | mp4/avi/mov/mkv/webm | HLS 自适应码率流播放 | FFmpeg + HTML5 Video |
音频 | mp3/wav/flac/aac/ogg | HTML5 音频播放 | 原生 Audio |
压缩包 | zip/rar/7z | 文件列表展示 | - |
视频上传后自动完成:SHA-256 完整性校验 → FFprobe 提取元数据(时长/分辨率/码率)→ 用户点击"转码"→ RabbitMQ 异步发送转码消息 → FFmpeg 生成 360p + 720p 多码率分片 → HLS .m3u8 播放列表 → 前端根据网络状况自动切换清晰度。
整个流程全异步、不阻塞用户操作,转码进度可通过 API 查询。
导入支持:Word (.docx) → Markdown, Markdown (.md) → 系统文档, 纯文本 (.txt) → 系统文档, 拖拽批量导入
导出支持:Markdown → PDF, Markdown → Word, Markdown → 原格式下载
构建了完整的文档格式转换 pipeline,知识进得来也出得去。
分类 | 亮点数 | 核心关键词 |
|---|---|---|
微服务架构 | 4 | 数据库-per-服务、Gateway鉴权透传、Feign声明式调用、Nacos注册配置 |
AI/LLM | 5 | RAG+KAG双引擎、LLM自动构建知识图谱、SSE流式输出、双模型切换、反馈闭环 |
搜索技术 | 2 | BM25+向量混合检索+RRF融合、异步热词分析 |
权限安全 | 4 | 三层RBAC、Token刷新请求队列、防全表更新拦截器、AOP注解审计 |
存储文件 | 3 | 全格式预览矩阵、HLS自适应流媒体、SHA-256秒传去重 |
数据工程 | 4 | Snowflake分布式ID、逻辑删除审计、RabbitMQ事件驱动、定时统计 |
前端工程 | 4 | Axios拦截体系、Zustand持久化、路由懒加载守卫、TS零错误 |
运维工程 | 4 | 全局异常处理、Knife4j在线文档、虚拟线程 |
如果你是一个初中级后端开发:
kb-user-auth如果你是一个前端开发:
如果你关注 AI / LLM:
如果你是架构师或技术 Leader: