
最近我的企业智能知识库系统升级了增加Python版本的后端微服务项目。使用了RAG KAG 双引擎架构。这个系统非常实用可以直接写到简历中很加分。通过这个系统大家可以前端、Java、Python和AI技术一起学习嘎嘎香。前言最近我的企业智能知识库系统升级了增加Python版本的后端微服务项目。目前包含三个项目React前端项目Java后端项目Python后端项目使用了RAG KAG 双引擎架构。这个系统非常实用可以直接写到简历中很加分。通过这个系统大家可以前端、Java、Python和AI技术一起学习嘎嘎香。文末有获取源码的方法。一、项目介绍这个项目是干什么的简单说让企业里的知识真正流动起来。你在公司里是不是经常遇到这些情况找一个接口文档要翻 Confluence、语雀、飞书、本地 Markdown最后还是问同事才找到。新同事入职面对一片信息孤岛没人告诉他该看什么、从哪看起。核心员工离职人走了知识也走了留下的文档三年没更新过。想用 AI 赋能知识管理但市面上的 SaaS 方案要么太贵要么数据安全过不了关。企业智能知识库系统就是为解决这些问题而生的。它覆盖了从文档创建、分类存储、混合智能检索、权限审批、版本管理到 AI 智能问答、AI写作、知识图谱分析的全链路。项目规模有多大维度数据后端技术栈两套可选Java 版 / Python 版Java 版微服务模块10个Java 源文件192个Python 版微服务模块8个Python 源文件120个REST API 端点近200个两套后端功能对等前端功能页面34个数据库MySQL9个共 29 张业务表中间件集成Java 版7种/ Python 版7种后端代码量Java 版20,000 行/ Python 版15,000 行前端代码量16,000 行TypeScript/TSX总代码量50,000 行含两套后端这个项目提供了Java 和 Python 两套后端实现功能完全对等你可以根据自己的技术栈偏好选择其中一套来学习和使用。两套后端遵循相同的 REST API 规范前端不需要改动。系统架构一览架构亮点项目提供Java 和 Python 两套独立的后端实现。Java 版基于 Spring Cloud Alibaba 微服务体系Python 版基于 FastAPI LangChain。两套后端功能对等文档管理、搜索、AI问答、权限管控等核心能力完全一致共享同一套前端。根据你的团队技术栈选择一套即可部署方案各自独立。二、使用技术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通用工具库Python 后端技术栈除了 Java 版之外项目还提供了完整的Python 版后端实现。两套后端功能对等、API 接口一致、共享同一套前端。如果你主攻 Python 方向或者团队正在从 Java 向 Python 转型可以直接选择这套技术版本在项目里的实际用途Python3.12类型注解、match-case 模式匹配、asyncio 协程FastAPI0.115高性能异步 Web 框架替代 Spring Boot自动生成 Swagger 文档Pydantic2.x请求/响应数据校验与模型定义替代 Java Bean ValidationSQLAlchemy2.0异步 ORM替代 MyBatis Plus管理所有业务表的 CRUDAlembic-数据库迁移工具替代 Flyway/LiquibaseUvicorn Gunicorn-ASGI 多 worker 服务器并发模型替代 Tomcat/NginxFastAPI Users-JWT 认证 RBAC 权限体系替代 Spring Security JJWTLangChain0.3LLM 统一调用编排、RAG Pipeline 构建LangGraph0.2多步骤 AI Agent 编排引擎状态图驱动OpenAI SDK1.x兼容多模型 API通义千问 / DeepSeek / GLM-4Sentence-Transformers3.x本地 Embedding 模型BGE-M3, 1024维Elasticsearch7.x全文检索 向量存储MongoDB6.x文档正文内容 自动保存历史Neo4j5.x知识图谱节点和关系存储Redis7.x缓存、Session、Celery 消息 BrokerCelery5.4异步任务队列文档解析、向量嵌入、视频转码、通知推送RabbitMQ3.x可选的消息队列与 Celery 互补跨团队解耦httpx0.28异步 HTTP 客户端服务间 RPC 调用FastStream-Kafka/RabbitMQ 事件流处理框架tiktoken-精确 Token 计数与分块边界控制为什么提供 Python 版很多团队在后端语言选型上存在分歧Java 派看重稳定性和企业生态Python 派看重 AI 生态和开发效率。这个项目直接把两套都做了出来功能完全对等、API 接口一致、共享同一个前端。你想用 Java 就用 Java 版想用 Python 就用 Python 版不用纠结二选一错过什么。前端技术栈技术版本在项目里的实际用途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 壳子。我把最核心的功能一个一个拆开来说。1.文档全生命周期管理从一篇文档的诞生到归档每个环节都管到了详细功能清单Markdown 编辑器实时预览、代码块语法高亮、表格、数学公式、GFM 支持版本管理每次修改自动存一版支持版本对比和任意版本回滚审批流程文档发布需审核审核人可以批通过也可以驳回并给出修改意见分类体系无限级联分类树支持拖拽移动标签系统灵活打标签热门标签自动排序评论互动可对文档评论、回复、点赞收藏 点赞社区化的知识互动机制文档分享生成带密码保护的分享链接可设置有效期PDF 导出一键导出 Markdown → PDF文档导入支持 Word (.docx) / Markdown (.md) / 纯文本批量导入最近访问自动记录浏览历史方便快速回溯草稿箱未完成的文档自动保存为草稿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.智能搜索这不是简单的数据库 LIKE 模糊查询而是基于 Elasticsearch 的企业级搜索引擎搜索能力全文搜索输入任何关键词秒级返回匹配文档高级搜索按分类、标签、作者、时间范围多维筛选搜索建议输入时实时联想补全语义搜索搜怎么提高系统性能能匹配到性能优化相关文档热词排行展示全系统搜索最多的关键词搜索历史自动保存随时回顾4.AI 智能助手这是最硬核的部分这不是调个 API 就完事的ChatGPT 套壳。这套系统实现了一整套RAG KAG 双引擎架构三种对话模式适应不同场景模式原理适用场景标准对话直接调用大模型通用问答、闲聊、写作辅助RAG 对话检索知识库中的相关文档片段注入 Prompt我们公司的支付接口怎么对接KAG 对话结合知识图谱中的实体关系增强上下文支付系统和哪些系统有依赖关系RAG检索增强生成KAG知识增强生成AI 辅助写作生成文档摘要生成文档大纲内容扩写与润色表达优化自动添加示例双模型支持通义千问qwen3-max阿里云 DashScope APIDeepSeekdeepseek-chatDeepSeek 官方 API可灵活切换配置即可生效5.知识图谱可视化基于 Neo4j 图数据库构建知识网络支持节点管理按类型文档/用户/分类/标签筛选关系查询按源头/目标类型过滤N 度关联查询任意节点 2-3 跳范围内的关联路径分析两个知识点之间的最短路径社区发现标签传播算法自动识别知识集群前端可视化ECharts 力导向图渲染支持节点拖拽、缩放、高亮6.权限管理真正的企业级 RBAC完整功能用户管理创建、禁用、删除、重置密码角色管理可自定义角色灵活分配权限权限树细粒度控制精确到每个操作按钮团队管理部门/项目组织形式权限继承JWT 无状态认证 Token 自动刷新全操作日志记录谁在什么时候做了什么7.数据看板 统计分析总览仪表盘文档总数、用户数、今日访问量、AI调用次数文档趋势图按时间维度的创建/更新趋势用户活跃度排行谁在贡献、谁在消费知识分类分布图知识在各领域的分布情况热门文档排行最受欢迎的技术文档 Top 108.实时通知系统WebSocket 实时推送RabbitMQ 异步消息处理通知保留 90 天支持已读/未读状态管理支持管理员群发通知9.Python 后端实现方案如果你选择 Python 版后端以下是 Python 版本中几个核心模块的亮点。功能上与 Java 版对等但实现方式更贴合 Python 生态特点。1FastAPI 微服务体系Python 版拆分为 8 个独立 FastAPI 应用通过 Nginx 反向代理或 Traefik 做网关路由模块端口职责gateway-service8000统一入口、JWT 校验、CORS、限流auth-service8001用户认证、RBAC 权限、团队管理document-service8002文档 CRUD、分类、标签、评论、审核file-service8003文件上传/下载、格式转换、HLS 转码search-service8004ES 全文检索、搜索建议、热词排行ai-service8006RAG/KAG 对话、AI 写作、LangGraph Agentgraph-service8008Neo4j 知识图谱的节点与关系管理statistics-service8005数据看板、定时统计、用户活跃度所有服务通过httpx异步客户端做服务间调用JWT 认证通过 FastAPI 中间件统一拦截X-User-IdHeader 透传与 Java 版设计一致。2全链路 RAG Pipeline文档入库document-service 异步触发 ├── LangChain RecursiveCharacterTextSplitter 智能分块 │ ├── 自适应语义分块段落边界感知非暴力截断 │ └── 动态 chunk_size256~1024根据文档类型自动调整 ├── Celery EmbeddingTask → Sentence-Transformers BGE-M3 本地 Embedding │ ├── 1024维稠密向量支持中英双语 │ └── GPU 加速批处理batch_size32 ├── ES dense_vector 索引写入或可选 Milvus └── 查询时BM25 向量双路召回 → RRF 融合3LangGraph Agent 工作流Python 版的 AI 对话不是简单的一问一答而是通过 LangGraph 构建的多步骤自主推理链Agent 类型能力应用场景SearchAgent按关键词、分类、标签检索文档找一下支付接口文档RAGAgent语义检索 LLM 生成答案支付接口怎么对接KAGAgent知识图谱遍历 关联推理支付系统和哪些系统有关联WritingAgent大纲生成 → 段落扩写 → 润色帮我写一份支付系统接入指南SupervisorAgent调度上述 Agent自主决策调用顺序分析支付系统的整体架构所有 Agent 通过LangGraph StateGraph串联支持 Checkpointer 状态持久化与断点恢复。4Celery 异步任务体系Python 版用 Celery RabbitMQ 组合做所有耗时操作的异步解耦DocumentParseTaskWord/PDF 解析 → Markdown 转换EmbeddingTask文档分块 向量嵌入 → 写回向量索引EntityExtractionTaskLLM 实体抽取 → Neo4j 图谱写入SummaryTask文档摘要自动生成TranscodeTaskFFmpeg 视频转码HLS 多码率IndexSyncTaskES 全文索引同步进度推送Celery task state → WebSocket → 前端百分比进度条5Model Gateway 多模型网关┌─────────────────────────────────────────────────┐ │ FastAPI Model Gateway │ ├─────────────────────────────────────────────────┤ │ 统一接口: POST /api/v1/chat/completions │ ├──────────┬──────────┬──────────┬───────────────┤ │ Qwen │ DeepSeek │ GLM-4 │ 本地模型 │ │ (通义千问) │ (深度求索) │ (智谱) │ (Ollama/vLLM) │ ├──────────┴──────────┴──────────┴───────────────┤ │ 自动 fallbackA 模型超时 → B 模型接管 │ │ 智能路由简单问答→DeepSeek / 复杂推理→Qwen │ │ Token 计费每次调用精确计算消耗 Token 和成本 │ │ 速率控制按模型 用户维度的 Token Bucket 限流 │ └─────────────────────────────────────────────────┘四、系统展示文档功能知识图谱支持多种类型的文件支持团队空间五、项目亮点1.架构亮点1真正的微服务落地不是拆模块改个名10 个微服务独立部署每个服务有自己的数据库9 个独立 MySQL 库Nacos 服务注册与发现服务间通过 Feign 声明式调用Spring Cloud Gateway 统一网关JWT 认证在网关层统一处理有明确的服务边界和调用关系不是简单的 Maven 多模块Gateway 的AuthGlobalFilter在请求进入时就完成 JWT 校验提取用户信息后通过X-User-IdHeader 向下游透传。下游服务不再重复处理认证逻辑只需要从 Header 中读取用户身份即可——关注点分离代码更清爽。服务间通信采用 Spring Cloud OpenFeign用接口注解的方式定义远程调用完全不写 HTTP 连接代码。所有 10 个服务启动后自动注册到 Nacos支持健康检查、负载均衡、动态上下线。2RAG KAG 双引擎 AI 架构这不是简单的接个 ChatGPT API。项目实现了一整套可插拔的 AI 引擎架构维度RAG 引擎KAG 引擎数据来源文档内容向量化分块知识图谱Neo4j实体关系检索方式Embedding 向量相似度 BM25 混合检索LLM实体识别 → Neo4j 多跳遍历核心优势语义匹配理解用户意图结构化推理发现隐含关联融合策略RRFReciprocal Rank Fusion加权融合权重可调整个 pipeline 可拆解为独立步骤文档分块Chunking→ 文本嵌入Embedding→ 向量索引KNN→ 混合检索 → 上下文构造 → LLM 生成。每一个步骤都有独立的 Service 实现方便替换或升级。3混合搜索BM25 向量不是简单的 ES LIKE 模糊查询而是实现了搜索结果的多路召回 融合排序用户搜索 如何提升系统性能 ├── 路径1: BM25 倒排索引关键词匹配 → 命中性能优化文档精确但可能遗漏同义词 ├── 路径2: text-embedding-v3 向量语义匹配 → 命中系统调优文档语义相近但用词不同 └── RRF 融合: 对两路结果按倒数排名加权融合输出 Top-K20 最终结果向量 embedding 采用阿里云 text-embedding-v3 模型1024 维向量存入 Elasticsearch 的dense_vector字段支持 KNN 近似最近邻检索。用户每次搜索异步写入 MySQL定时任务聚合计算热词排行。搜索历史支持个人维度管理查看/清空/导出热词排行面向全系统展示——既保护个人隐私又提供全局趋势洞察。4RabbitMQ 驱动的事件异步处理大量耗时操作通过 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两套后端实现自由选择这是本项目区别于绝大多数开源项目的核心亮点——不是只有一套后端而是 Java 和 Python 各有一套完整实现维度Java 版Python 版框架Spring Boot 3.2 Spring CloudFastAPI 0.115 LangChain微服务模块10个8个ORMMyBatis PlusSQLAlchemy 2.0认证Spring Security JJWTFastAPI Users PyJWT异步任务RabbitMQCelery Redis RabbitMQCelery 做任务调度RabbitMQ 做跨服务解耦数据库MySQL ×9 MongoDB ES Neo4j同一套数据库接口兼容服务间调用OpenFeignhttpx 异步客户端部署JAR Docker ComposeUvicorn Docker ComposeAPI 接口用同一套 Swagger 规范接口路径和参数一致前端共用同一套 React 前端零改动切换设计哲学大部分微服务开源项目只提供一种语言的实现你喜欢的语言没做就只能将就。这个项目两套都做了功能完全对等。你想用 Java 学习 Spring Cloud 全家桶就用 Java 版你想用 Python 学习 FastAPI LangChain AI 原生开发就用 Python 版。两套源码都在星球里一次付费全部拿走。6全格式文件预览体系涵盖 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知识进得来也出得去。2.工程亮点分类亮点数核心关键词微服务架构6数据库-per-服务、Gateway鉴权透传、Feign声明式调用、Nacos注册配置、Java/Python双后端实现、功能完全对等AI/LLM7RAGKAG双引擎、LangChainLangGraph Agent编排、混合检索RRF融合、LLM自动构建知识图谱、SSE流式输出、双模型切换、反馈闭环Python 后端5FastAPI异步微服务、Celery异步任务队列、SQLAlchemy 2.0异步ORM、Sentence-Transformers本地Embedding、Model Gateway多模型网关搜索技术2BM25向量混合检索RRF融合、异步热词分析权限安全4三层RBAC、Token刷新请求队列、防全表更新拦截器、AOP注解审计存储文件3全格式预览矩阵、HLS自适应流媒体、SHA-256秒传去重数据工程4Snowflake分布式ID、逻辑删除审计、消息队列事件驱动、定时统计前端工程4Axios拦截体系、Zustand持久化、路由懒加载守卫、TS零错误运维工程4全局异常处理、Knife4j在线文档、虚拟线程3.这套源码能带给你什么如果你是一个 Java 后端开发微服务怎么拆、怎么做服务发现、怎么写 Feign 接口这项目里全有JWT RBAC 权限模型怎么设计代码怎么写直接看kb-user-authMyBatis Plus 的高级用法分页、连表、动态 SQL、逻辑删除Elasticsearch 全文检索 向量搜索怎么实际落地RabbitMQ 异步消息怎么在真实的业务场景里用AOP 切面编程实现操作日志和限流如果你是一个 Python 后端开发FastAPI 如何构建生产级异步微服务asyncio Uvicorn GunicornSQLAlchemy 2.0 异步 ORM 的高级用法连表、分页、软删除、事务管理FastAPI Users PyJWT 实现 JWT 认证 RBAC 权限体系Celery Redis 构建异步任务队列文档解析、向量嵌入、视频转码LangChain LangGraph 搭建多 Agent 自主协作系统Sentence-Transformers 本地 Embedding 做向量检索GPU 批处理Model Gateway多模型统一接口、智能路由、自动 fallbackhttpx 异步客户端做微服务间 RPC 通信Pydantic 2.x 做严格的数据校验与 API Schema 定义Alembic 数据库版本迁移管理如果你是一个前端开发React 18 TypeScript 5 企业级项目怎么组织目录和代码Zustand 状态管理 persist 持久化的最佳实践Axios 拦截器、Token 刷新、请求重试队列的完整方案Ant Design 5 的深度定制自定义主题、国际化ECharts 在 React 中怎么封装和使用文件上传大文件分片、文件预览PDF/DOCX/XLSX/MD怎么实现如果你关注 AI / LLMRAG 完整 pipeline 的代码实现从文档分块到向量检索到 LLM 生成KAG 完整 pipeline 的代码实现从实体抽取到图谱构建到融合检索Java 版用 LangChain4j、Python 版用 LangChain——两种技术路线对比学习Elasticsearch 向量存储的方案设计和落地Neo4j 知识图谱如何由 LLM 驱动自动构建多模型Qwen DeepSeek切换的架构设计如果你是架构师或技术 Leader微服务怎么拆每个服务的边界如何定义9 个数据库的设计理由、ER 关系、索引策略7 种中间件的选型理由和使用场景Java vs Python 技术选型同一个系统用两种语言分别实现你可以直接对比两种技术栈的工程差异、性能特点、开发效率这对技术选型决策非常有参考价值