推薦一個很強的企業知識庫系統

大家好,我是蘇三,又跟大家見面了。

前言

最近我又肝了一個新專案:企業智慧知識庫系統。

這個專案非常實用,可以直接寫進履歷中,很加分,裡面有很多有意思的功能。

更多專案實戰在我的技術網站:susan.net.cn/project

一、專案介紹

這個專案是做什麼的?

簡單說:讓企業裡的知識真正流動起來。

你在公司裡是不是經常遇到這些情況:

  • 找一個介面文件,要翻 Confluence、語雀、飛書、本機 Markdown,最後還是問同事才找到。
  • 新同事入職,面對一片資訊孤島,沒人告訴他該看什麼、從哪裡開始看。
  • 核心員工離職,人走了知識也走了,留下的文件三年沒更新過。
  • 想用 AI 賦能知識管理,但市面上的 SaaS 方案要嘛太貴,要嘛資料安全過不了關。

企業智慧知識庫系統就是為了解決這些問題而生的。

它涵蓋了從文件建立、分類儲存、混合智慧檢索、權限審批、版本管理,到 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 開發規範、遵循企業級架構標準的生產級系統

系統架構一覽

image.png

二、使用技術

後端技術棧

技術版本在專案裡的實際用途Java21 LTS虛擬執行緒、Record 類、模式匹配Spring Boot3.2.0所有微服務的基礎框架Spring Cloud2023.0.0微服務治理、服務間呼叫Spring Cloud Alibaba2023.0.1.0Nacos 註冊中心 & 配置中心整合Spring Cloud Gateway-統一 API 閘道、路由轉發、CORSMyBatis Plus3.5.8所有資料庫的 ORM 操作Druid1.2.20資料庫連線池 + SQL 監控MySQL8.09 個業務資料庫,22+ 張表Redis7.x快取、Session、即時排行榜Elasticsearch7.x全文檢索 + 向量儲存MongoDB6.x文件正文內容儲存Neo4j5.x知識圖譜節點和關係儲存RabbitMQ3.x非同步訊息(轉碼、索引同步、通知)LangChain4j0.29.1LLM 整合框架,統一模型呼叫Knife4j4.3.0自動生成 Swagger API 文件JWT (JJWT)0.12.3無狀態身分驗證Hutool5.8.24通用工具庫### 前端技術棧

技術版本在專案裡的實際用途React18.3.1核心 UI 框架TypeScript5.3.3嚴格模式,零型別錯誤Vite5.1.0建置工具,SWC 編譯,秒級熱更新Ant Design5.14.0企業級 UI 元件庫,中文 localeReact Router6.22.0客戶端路由 + 懶載入 + 權限守衛Zustand4.5.0輕量級狀態管理 + persist 持久化Axios1.6.7HTTP 請求 + token 自動刷新 + 重試佇列ECharts5.6.0資料視覺化圖表react-markdown9.0.1Markdown 渲染 + GFM 支援react-syntax-highlighter16.1.1程式碼區塊語法高亮react-pdf10.4.1PDF 線上預覽mammoth1.8.0DOCX 轉 HTML 預覽xlsx0.18.5Excel 表格解析和預覽### 中介軟體 & 基礎設施

image.png

三、功能介紹

這系統不是一個 CRUD 外殼。

我把最核心的功能一個一個拆開來說。

3.1 文件全生命週期管理

從一篇文件的誕生到歸檔,每個環節都管到了:

image.png詳細功能清單:

  • Markdown 編輯器:即時預覽、程式碼區塊語法高亮、表格、數學公式、GFM 支援
  • 版本管理:每次修改自動存一版,支援版本對比和任意版本回滾
  • 審批流程:文件發布需審核,審核人可以通過也可以退回並給出修改意見
  • 分類體系:無限級聯分類樹,支援拖曳移動
  • 標籤系統:靈活打標籤,熱門標籤自動排序
  • 評論互動:可對文件評論、回覆、按讚
  • 收藏 & 按讚:社群化的知識互動機制
  • 文件分享:生成帶密碼保護的分享連結,可設定有效期
  • PDF 匯出:一鍵匯出 Markdown → PDF
  • 文件匯入:支援 Word (.docx) / Markdown (.md) / 純文字批次匯入
  • 最近瀏覽:自動記錄瀏覽歷史,方便快速回溯
  • 草稿箱:未完成的文件自動儲存為草稿

3.2 檔案管理中心

統一的檔案管理平台,不只是存檔案,而是全格式線上預覽

類別支援格式預覽方式PDF.pdfreact-pdf 渲染,支援縮放、翻頁Word.doc / .docxmammoth 轉 HTML 渲染Excel.xls / .xlsxSheetJS 解析為互動式表格PPT.ppt / .pptx後端擷取投影片為圖片預覽Markdown.mdreact-markdown + 程式碼高亮純文字.txt等寬字型渲染圖片.png / .jpg / .gif / .bmp / .svg原生預覽 + 縮圖影片.mp4 / .avi / .mov / .mkv / .webmHTML5 Video + HLS 自適應位元率音訊.mp3 / .wav / .flac / .aac / .oggHTML5 Audio 播放壓縮檔.zip / .rar / .7z檔案列表顯示影片檔案還支援:

  • 大檔案上傳:最大 2GB
  • 自動 HLS 轉碼:FFmpeg 非同步轉碼,生成 360p + 720p 多位元率
  • 自適應位元率播放:根據網路自動切換畫質
  • SHA-256 秒傳:相同檔案不重複上傳

3.3 智慧搜尋

這不是簡單的資料庫 LIKE 模糊查詢,而是基於 Elasticsearch 的企業級搜尋引擎

image.png搜尋能力:

  • 全文搜尋:輸入任何關鍵字,秒級返回匹配文件
  • 進階搜尋:按分類、標籤、作者、時間範圍多維篩選
  • 搜尋建議:輸入時即時聯想補全
  • 語意搜尋:搜「怎麼提高系統效能」,能匹配到「效能優化」相關文件
  • 熱詞排行:展示全系統搜尋最多的關鍵字
  • 搜尋歷史:自動儲存,隨時回顧

3.4 AI 智慧助手(這是最硬核的部分)

這不是調個 API 就完事的「ChatGPT 套殼」。

這套系統實現了一整套 RAG + KAG 雙引擎架構

三種對話模式,適應不同場景:

模式原理適用場景標準對話直接呼叫大模型通用問答、閒聊、寫作輔助RAG 對話檢索知識庫中的相關文件片段,注入 Prompt「我們公司的支付介面怎麼對接?」KAG 對話結合知識圖譜中的實體關係,增強上下文「支付系統和哪些系統有依賴關係?」RAG(檢索增強生成):

image.pngKAG(知識增強生成):

image.pngAI 輔助寫作:

  • 生成文件摘要
  • 生成文件大綱
  • 內容擴寫與潤飾
  • 表達優化
  • 自動添加範例

雙模型支援:

  • 通義千問(qwen3-max):阿里雲 DashScope API
  • DeepSeek(deepseek-chat):DeepSeek 官方 API
  • 可靈活切換,設定即可生效

3.5 知識圖譜視覺化

基於 Neo4j 圖資料庫建構知識網路,支援:

  • 節點管理:按類型(文件/使用者/分類/標籤)篩選
  • 關係查詢:按來源/目標類型過濾
  • N 度關聯:查詢任意節點 2-3 跳範圍內的關聯
  • 路徑分析:兩個知識點之間的最短路徑
  • 社群發現:標籤傳播演算法,自動識別知識群集
  • 前端視覺化:ECharts 力導向圖渲染,支援節點拖曳、縮放、強調顯示

3.6 權限管理(真正的企業級 RBAC)

image.png完整功能:

  • 使用者管理(建立、停用、刪除、重設密碼)
  • 角色管理(可自訂角色,靈活分配權限)
  • 權限樹(細粒度控制,精確到每個操作按鈕)
  • 團隊管理(部門/專案組織形式,權限繼承)
  • JWT 無狀態認證 + Token 自動刷新
  • 全操作日誌記錄(誰在什麼時候做了什麼)

3.7 資料看板 & 統計分析

  • 總覽儀表板:文件總數、使用者數、今日瀏覽量、AI 呼叫次數
  • 文件趨勢圖:按時間維度的建立/更新趨勢
  • 使用者活躍度排行:誰在貢獻、誰在消費知識
  • 分類分布圖:知識在各領域的分布情況
  • 熱門文件排行:最受歡迎的技術文件 Top 10

3.8 即時通知系統

  • WebSocket 即時推送
  • RabbitMQ 非同步訊息處理
  • 通知保留 90 天
  • 支援已讀/未讀狀態管理
  • 支援管理員群發通知

四、系統展示

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

五、專案亮點

5.1 架構亮點

1. 真正的微服務落地,不是「拆模組改個名」

  • 10 個微服務獨立部署,每個服務有自己的資料庫(9 個獨立 MySQL 庫)
  • Nacos 服務註冊與發現,服務間透過 Feign 宣告式呼叫
  • Spring Cloud Gateway 統一閘道,JWT 認證在閘道層統一處理
  • 有明確的服務邊界和呼叫關係,不是簡單的 Maven 多模組

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 模糊查詢,而是實現了搜尋結果的多路召回 + 融合排序:

arduino 程式碼解讀複製程式碼使用者搜尋 "如何提升系統效能"
  ├── 路徑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-documentkb-search/Consumer文件發布後非同步更新 ESRAG 向量化kb-documentkb-ai/ReindexConsumer文件發布後非同步向量嵌入KAG 圖譜建構kb-documentkb-ai/KAGReindexConsumer文件發布後非同步建構圖譜影片轉碼kb-filekb-file/TranscodeConsumer大檔案轉碼不阻塞上傳通知推送各服務kb-foundation訊息非同步分發5. 全格式檔案預覽體系

涵蓋 PDF、DOCX、XLSX、PPT、Markdown、TXT、圖片、影片(HLS)、音訊,使用者不需要下載檔案就能看到內容。

專案涵蓋了企業日常能接觸到的幾乎所有檔案格式,且不需要使用者安裝任何軟體:

類別支援格式預覽技術關鍵函式庫PDF.pdf分頁渲染,支援縮放react-pdf 10.xWord.doc/.docxHTML 即時轉換mammoth.jsExcel.xls/.xlsx互動式資料表格SheetJS (xlsx)PPT.ppt/.pptx投影片逐頁預覽後端圖片擷取Markdown.mdGFM 渲染 + 程式碼高亮react-markdown + PrismJS純文字.txt等寬字型渲染原生圖片png/jpg/gif/bmp/svg/webp縮圖 + 原圖預覽原生影片mp4/avi/mov/mkv/webmHLS 自適應位元率串流播放FFmpeg + HTML5 Video音訊mp3/wav/flac/aac/oggHTML5 音訊播放原生 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,知識進得來也出得去。

5.2 工程亮點

分類亮點數核心關鍵詞微服務架構4資料庫-per-服務、Gateway 鑑權透傳、Feign 宣告式呼叫、Nacos 註冊配置AI/LLM5RAG+KAG 雙引擎、LLM 自動建構知識圖譜、SSE 串流輸出、雙模型切換、回饋閉環搜尋技術2BM25+向量混合檢索+RRF 融合、非同步熱詞分析權限安全4三層 RBAC、Token 刷新請求佇列、防全表更新攔截器、AOP 註解稽核儲存檔案3全格式預覽矩陣、HLS 自適應串流媒體、SHA-256 秒傳去重資料工程4Snowflake 分散式 ID、邏輯刪除稽核、RabbitMQ 事件驅動、定時統計前端工程4Axios 攔截器體系、Zustand 持久化、路由懶載入守衛、TS 零錯誤維運工程4全域例外處理、Knife4j 線上文件、虛擬執行緒### 5.3 這套原始碼能帶給你什麼?

更多專案實戰在我的技術網站:susan.net.cn/project

如果你是初中級後端開發:

  • 微服務怎麼拆、怎麼做服務發現、怎麼寫 Feign 介面,這專案裡全都有
  • JWT + RBAC 權限模型怎麼設計,程式碼怎麼寫,直接看 kb-user-auth
  • MyBatis Plus 的進階用法(分頁、連表、動態 SQL、邏輯刪除)
  • Elasticsearch 全文檢索 + 向量搜尋怎麼實際落地
  • RabbitMQ 非同步訊息怎麼在真實的業務場景裡用
  • AOP 切面程式設計實作操作日誌和流量限制

如果你是前端開發:

  • React 18 + TypeScript 5 企業級專案怎麼組織目錄和程式碼
  • Zustand 狀態管理 + persist 持久化的最佳實踐
  • Axios 攔截器、Token 刷新、請求重試佇列的完整方案
  • Ant Design 5 的深度客製化(自訂主題、國際化)
  • ECharts 在 React 中怎麼封裝和使用
  • 檔案上傳(大檔案分片)、檔案預覽(PDF/DOCX/XLSX/MD)怎麼實作

如果你關注 AI / LLM:

  • RAG 完整 pipeline 的程式碼實作(從文件分塊到向量檢索到 LLM 生成)
  • KAG 完整 pipeline 的程式碼實作(從實體擷取到圖譜建構到融合檢索)
  • Elasticsearch 向量儲存的方案設計和落地
  • Neo4j 知識圖譜如何由 LLM 驅動自動建構
  • 多模型(Qwen + DeepSeek)切換的架構設計
  • LangChain4j 在實際 Spring Boot 專案中的整合方式

如果你是架構師或技術 Leader:

  • 微服務怎麼拆,每個服務的邊界如何定義
  • 9 個資料庫的設計理由、ER 關係、索引策略
  • 7 種中介軟體的選型理由和使用場景

原文出處:https://juejin.cn/post/7651528402427723810


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝15   ❤️1
435
🥈
我愛JS
📝1  
13
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登