大家好,我是蘇三,又跟大家見面了。
最近我又肝了一個新專案:企業智慧知識庫系統。
這個專案非常實用,可以直接寫進履歷中,很加分,裡面有很多有意思的功能。
更多專案實戰在我的技術網站:susan.net.cn/project
簡單說:讓企業裡的知識真正流動起來。
你在公司裡是不是經常遇到這些情況:
企業智慧知識庫系統就是為了解決這些問題而生的。
它涵蓋了從文件建立、分類儲存、混合智慧檢索、權限審批、版本管理,到 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 開發規範、遵循企業級架構標準的生產級系統。

技術版本在專案裡的實際用途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 表格解析和預覽### 中介軟體 & 基礎設施

這系統不是一個 CRUD 外殼。
我把最核心的功能一個一個拆開來說。
從一篇文件的誕生到歸檔,每個環節都管到了:
詳細功能清單:
統一的檔案管理平台,不只是存檔案,而是全格式線上預覽:
類別支援格式預覽方式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檔案列表顯示影片檔案還支援:
這不是簡單的資料庫 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 模糊查詢,而是實現了搜尋結果的多路召回 + 融合排序:
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,知識進得來也出得去。
分類亮點數核心關鍵詞微服務架構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
如果你是初中級後端開發:
kb-user-auth如果你是前端開發:
如果你關注 AI / LLM:
如果你是架構師或技術 Leader: