制度手册只会躺在网盘?这套 Java 知识中台能问出出处,还能写出公众号初稿
文档越存越多真正卡住团队的往往不是磁盘而是四件事谁能看、能不能找到、AI 回答有没有依据、内部资料能不能变成对外内容。这不是又一个「网盘 搜索框」。本文介绍一套可私有化部署的多部门权限企业知识库2.1Spring Boot React 管文档和权限关键词与向量一起检索DeepSeek 做有来源的 RAG 问答火山方舟按库内事实生成可审校的微信公众号初稿。一句话链路文档入库 → 部门隔离 → 分块索引 → 语义检索 → 有来源问答 → 公众号内容复用。读完你可以带走三件事权限该放在哪一层、问答如何保证有出处、以及怎么从零把系统跑起来。技术事实以本仓库代码为准公开内容发布前仍需人工终审。1. 项目背景及简介1.1 背景沉淀不等于可用制度、手册、项目经验和故障复盘通常散落在网盘、群文件和个人电脑。文件名对不上关键词时同事比搜索更快直接问通用大模型答案听起来合理却对不上自家设备型号和制度条款跨部门资料要么全员可见、要么根本不敢放对外写公众号、项目介绍时又要重新整理一遍已经入库的素材。问题不在「有没有文档」而在文档没有进入一条可检索、可追责、可复用的链路。1.2 简介把文档变成能问的资产本项目面向「文档多、要控权、还想把对内知识变成对外初稿」的团队。要解决的事系统怎么做存得进单文件 / 批量上传Apache Tika 解析正文找得到关键词检索 Embeddings 语义检索问得准DeepSeek RAG返回答案引用的知识条目管得住RBAC 多部门隔离搜、问、写全链路过滤写得出权限内取材生成公众号初稿可复制到编辑器可上线MySQL、Nginx、可执行 jar支持私有化明确边界系统是可核验的知识入口不替代盖章版制度原文写稿只到可编辑初稿不替代事实核验微信只同步草稿箱不自动群发小库可用内存向量检索大库再接 Milvus。2. 目标客户2.1 更合适中大型企业需要统一知识入口且部门资料不能互相看见。技术团队规范、API 说明、部署手册、故障复盘要能搜能问。制造与工程设备手册、SOP、项目案例、维保能力需要复用。咨询与项目制历史方案和行业案例要能按权限召回。内容运营希望对外通稿贴企业事实而不是凭空写。2.2 不太合适只要个人笔记、无部门权限语雀、Notion 更轻。只要存文件、控目录企业网盘更直接。要做复杂 Agent / Workflow 编排应选 Dify 等 AI 应用平台。要「零人工、自动群发」本系统明确保留人工终审只写草稿箱。选型时先分赛道再比功能。本项目不与文档协作 SaaS 或通用编排平台正面竞争目标是部门权限 有出处问答 内容复用后台开箱可用。3. 平台定位一句话企业知识资产的「存、搜、问、写」中台。它站在文件存储和通用大模型中间先解决「谁能看见哪些资料」再让 AI 只基于可见片段回答和写作。3.1 四条设计原则权限不是页面筛选而是后端接口级约束。列表藏住不等于接口拦不住。问答不是裸聊而是 RAG。先检索知识条目再生成并带来源。写稿不是凭空创作。优先复用权限范围内的企业事实。AI 是增强项。Embeddings 或大模型不可用时关键词检索仍能工作。3.2 和常见方案差在哪对比项文档协作 / 网盘通用大模型聊天本系统事实来源文件本身弱问答训练记忆 临场发挥优先用库内摘录部门边界目录或空间权限无企业部门模型文档 / 搜 / 问 / 写全链路过滤对外写稿人工整理易空泛、难对口径约束写作 来源 草稿箱审校部署多为 SaaS外部服务可私有化 jar 静态后台Java 团队、要私有化、要管理后台而不是自己搭 RAG 脚手架时适配度更高。不做可视化多 Agent 编排也不做自研大模型。4. 平台技术与系统架构经典前后端分离。源码入口backend/src/main/java/com/company/knowledgebase/前端frontend/src/。4.1 整体架构flowchart LR U[浏览器] -- N[Nginx /knowledgeWeb] N -- F[React 18 管理后台] N -- B[Spring Boot 2.7 API] B -- DB[(MySQL 8 / H2)] B -- FS[本地文件存储] B -- AI[DeepSeek / 火山方舟 / Embeddings] B -- V[(可选 Milvus)] B -- WX[可选微信草稿箱]生产路径静态资源挂在/knowledgeWeb接口反代到 jar本地 8080 / 生产常见 13085。运行时配置落在data/runtime-settings.json系统配置页保存即生效Milvus 由部署开关决定。4.2 技术栈层级技术职责前端React 18、TypeScript、MUI、Axios管理后台与 API 调用后端Java 8、Spring Boot 2.7.17REST、可执行 fat jar安全Spring Security、JWTHS512、BCrypt无 Session方法级鉴权数据JPA、MySQL 8、H2生产主库 / 本地与测试文档Apache Tika 2.9正文抽取非专用 OCR 引擎AIDeepSeek、火山方舟 Coding Plan、Embeddings问答、写稿、向量向量部门范围内存余弦 / 可选 Milvus小库轻量大库 ANN工程Maven、Playwright、Nginx构建、E2E、反代写稿默认模型doubao-seed-2-1-turbo-260628深度思考默认关闭codeplan.thinkingdisabled速度优于开思考的 pro 路线。4.3 四条业务链路入库上传 → Tika →documents未索引→process-and-index→KnowledgeEntry分块 → 可选向量化。上传与索引解耦避免大文件卡死上传。搜索查询 → 部门过滤 → 关键词或向量召回 → 排序返回。问答问题 → 检索条目 → 组装 prompt → DeepSeek或本地整理兜底→ 会话按用户隔离落库。写稿主题 → 权限内取材空库跳过 Embeddings→ 火山方舟生成 Markdown → 富文本复制或同步草稿箱 → 人工终审。生成接口为非流式。固定开销已压到约亚秒级总时长主要随成稿字数增长页面进度条是估算不是 Token 级真实进度。5. 平台核心业务功能5.1 用户与部门权限角色范围SUPER_ADMIN全系统、全部门、用户、配置、审计ADMIN本部门文档、搜索、问答等业务USER所属部门内日常查询与使用用户可多部门关联。普通角色的文档、搜索、问答、公众号取材均按department_id过滤仅超级管理员可跨部门看全库。5.2 文档与知识条目支持 PDF、Office、TXT、Markdown、HTML 等。单文件与批量上传/api/documents/upload-batch后再调索引接口生成知识条目。支持分类、部门归属、索引状态与删除。5.3 智能搜索与 RAG 问答关键词LIKE做兜底语义检索解决「意思相同、措辞不同」。问答支持多轮、来源标注不可读取他人sessionId。DeepSeek Key 未配时仍可按检索片段本地整理要点用来验证「入库即可问」。5.4 公众号文章助手页面/wechat-article先按部门检索再写作。体验包括预计进度条、按今天/昨天/更早折叠的历史、单条删除、「复制到公众号」内联样式可贴编辑器和复制 Markdown以及可选草稿箱同步。未配置写稿 Key 直接失败避免无依据空写。5.5 工作台与系统管理统计卡片文档、条目、未索引、用户/部门、今日问答/上传/登录、存储可点击跳转。系统配置五块DeepSeek、火山写稿、Embeddings、微信草稿、OCR。审计日志记录登录、上传、删除等。6. 平台独特优势权限贯穿全链路。不只藏菜单搜索、问答、写稿在接口层按部门裁剪避免「页面看不见、API 还能捞」。AI 可增强、可降级。不把系统绑死在单一外部服务上向量或问答暂时不可用关键词检索仍在。对内查询与对外写稿共用同一批语料。减少重复整理口径更一致对外仍要求人核对数字、型号和客户名。贴合 Java 政企栈。jar /knowledgeWeb静态资源 MySQL Nginx改造和运维路径短。小库轻、大库可扩。默认瘦包不含 Milvus SDK需要 ANN 时再-Pwith-milvus。相对语雀类协作工具这里强在隔离与 RAG相对 Dify 类平台这里弱在编排、强在开箱业务后台和公众号场景。各产品迭代很快正式选型请以官方文档和实测为准。7. 平台安装使用环境JDK 8、Maven 3.6、Node 16、MySQL 8本地可用 H2、生产建议 Nginx 1.18。7.1 本地联调cdbackend mvn spring-boot:run -Dspring-boot.run.profileslocalcdfrontend npm install npm start访问http://localhost:3000/账号admin / admin123。7.2 生产打包与运行cdbackend mvn clean package -DskipTests# 产物backend/target/knowledgebase.jarcd../frontend npm install npm run build# 产物frontend/build/homepage/knowledgeWebjava -Xms512m -Xmx1024m \ -jar backend/target/knowledgebase.jar \ --spring.profiles.activeprod密钥、数据库密码、API Key 走环境变量不要写进仓库。生产库初始化见database/init-production.sql。server.port13085 deepseek.api.key${DEEPSEEK_API_KEY:} codeplan.api.key${CODEPLAN_API_KEY:} codeplan.model${CODEPLAN_MODEL:doubao-seed-2-1-turbo-260628} codeplan.thinking${CODEPLAN_THINKING:disabled} embeddings.enabled${EMBEDDINGS_ENABLED:true} milvus.enabled${MILVUS_ENABLED:false}Nginx 核心片段location /knowledgeWeb/ { alias /etc/www/website/knowledgeWeb/; try_files $uri $uri/ /knowledgeWeb/index.html; } location /knowledgeWeb/api/ { proxy_pass http://127.0.0.1:13085/api/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }健康检查curl http://127.0.0.1:13085/api/auth/health。测试cd backend mvn testE2Ecd e2e npm test默认后端 8088 / 前端 3008。操作手册docs/product-manual/企业知识中台-产品使用操作手册.pdf。8. 应用场景及使用案例说明效果取决于语料质量和权限设计下列路径用于对齐预期不是承诺指标。制造设备说明书、SOP、质检标准按部门入库 → 员工自然语言问故障处理 → 点开来源核对原文。安全与质量仍以正式文件为准。工程与设备服务参数、案例、方案进库 → 搜相似项目 → 生成介绍或公众号初稿 → 核对吨位、型号后「复制到公众号」。技术团队规范与复盘按项目入库 → 语义搜 RAG → 新人少问重复问题经验留在库里而不是聊天记录。咨询与培训方案、课件、制度按行业/部门隔离 → 搜相似案例 → 人工裁剪制度冲突以最新盖章件为准。落地顺序建议先定分类、命名和部门边界再批量迁移优先导高频、仍有效的文档问答不好先查条目和来源不要只换模型定期下架过期制度对外稿必须核对敏感信息。先补文档再调模型。主链路「入库 → 检索 → 问答」跑通且来源可核再开写稿。权限放后端、AI 可降级、写稿只到初稿——这三条取舍决定了这套系统像中台而不像又一个聊天窗口。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →