欢迎光临
我们一直在努力

企业知识库 2.0|可问、可搜、可管、可写——火山方舟驱动的企业知识中台

一句话读完: 用 Spring Boot + React 搭建带部门权限的企业知识库:DeepSeek 负责有据可查的智能问答,向量语义检索 补上关键词搜不到的缺口;2.0 新增 批量文件上传,并接入 火山方舟 Coding Plan(豆包等模型)基于知识库生成 专业大气的公众号文章——文档入库、对内问答、对外写稿,一套系统全搞定。

🔔 2.0 版本更新(重点)

批量文件上传

  • 多文件一次入库:上传页支持同时选择多个文件,调用 POST /api/documents/upload-batch 批量落库

  • 自动解析与命名:Apache Tika 抽取正文;标题、描述默认取文件名,减少手工填写

  • 部门归属:上传时选择目标部门,文档自动关联 department_id

  • 上传后自动索引:前端批量上传成功后逐个触发向量/知识条目索引,尽快进入可搜、可问状态

  • 适用场景:制度包、培训资料、项目文档等一次性大批量迁移进知识库

图片

公众号文章助手

  • 知识库约束写作:按主题从全库检索相关 KnowledgeEntry,将摘录作为唯一事实来源交给大模型,降低「空口编造」风险

  • 专业大气文风:系统提示词要求结构清晰(标题、导语、分节、小结)、Markdown 输出、合规表述,适合企业对外稿件初稿

  • 火山方舟驱动写作:公众号文章由 火山方舟 Coding Plan 生成(默认 doubao-seed-2.0-pro,可切换 deepseek-v3.2 等已开通模型),知识库检索结果作为事实依据,输出 Markdown 草稿

  • 生成历史:每位用户保留最近 20 条记录,可回看草稿与引用知识片段

  • 一键复制:预览区支持复制 Markdown 原文,便于粘贴到微信公众号后台排版

  • 同步草稿箱(2.1):生成后可一键同步到微信公众平台草稿箱(Markdown 转 HTML),在 mp.weixin.qq.com 审校后手动发布;不调用群发/发布 API

  • 管理端入口:侧边栏「公众号文章」→ 填写主题与额外要求 → 一键生成

图片


一、项目背景及简介

文档分散、权限难控、检索靠人工——AI 问答若缺规范语料,还容易「随口编」。本章说明痛点与本系统如何收口。

1.1 背景概述

企业里常见的是:资料越写越多,但沉淀不等于可检索、可复用。传统做法往往卡在几类典型矛盾上:

  • 知识孤岛问题:各部门文档分散存储,缺乏统一管理平台

  • 查找效率低下:员工需要花费大量时间在多个系统中查找所需信息

  • 权限管理混乱:难以实现细粒度的部门级权限控制

  • 知识传承困难:新员工难以快速获取历史经验和最佳实践

  • 重复工作频发:相同问题被反复咨询,缺乏知识沉淀机制

1.2 项目简介

企业知识库管理系统面向中大型企业,提供文档管理(含批量上传)、智能搜索、AI 问答与多部门权限控制。对内问答由 DeepSeek 驱动;对外内容生产由 火山方舟 大模型(Coding Plan)承接——先检索企业知识库,再生成专业、可复核来源的公众号文章草稿,避免「空口写稿、细节编造」。

图片

1.3 核心价值

  • 智能化:DeepSeek 问答 + 向量语义搜索;火山方舟生成公众号稿件,让知识从「存起来」到「问得到、写得出来」

  • 安全性:多层级权限体系,确保敏感信息仅在授权范围内访问

  • 易用性:直观的用户界面,零学习成本,开箱即用

  • 可扩展性:模块化设计,支持企业定制化需求

  • 成本效益:开源技术栈,降低企业IT成本

1.4 技术特点

系统基于 Spring Boot 2.7 + React 18 构建;AI 能力双引擎:DeepSeek(智能问答)+ 火山方舟 Coding Plan(公众号文章),配合 JWT 认证与向量化检索,兼顾安全、性能与可维护性。

图片


二、目标客户

面向文档多、跨部门协作、权限要求高的组织。

2.1 主要客户群体

  • 中大型企业:需要统一知识入口与部门级权限治理

  • 技术型团队:需要集中管理技术文档、规范与经验沉淀

  • 咨询/项目制组织:需要复用案例模板与行业知识

  • 培训与公共服务组织:需要稳定的资料管理与检索能力

2.2 适用场景

场景类型

应用描述

核心价值

企业内部知识共享

打破部门壁垒,实现知识资产统一管理

提升知识利用率,减少重复工作

技术文档管理

集中管理API文档、技术规范、开发指南

技术传承,降低新人上手成本

客服知识库

构建智能客服系统,快速响应客户咨询

提升服务效率,降低人工成本

培训资料管理

统一管理培训材料,支持在线学习

标准化培训,提升培训效果

政策法规查询

快速查询相关政策文件和工作流程

提升工作效率,确保合规性


三、平台定位

企业知识资产管理的基础设施:存得进、搜得到、问得准、写得出来。

3.1 产品定位

核心定位
  • AI驱动的知识管理:不仅仅是文档存储,更是智能化的知识服务

  • 企业级安全标准:满足中大型企业对数据安全和权限管理的严格要求

  • 开箱即用:提供完整的解决方案,无需复杂配置即可投入使用

差异化优势
  • 多部门权限管理:支持细粒度的部门级权限控制,确保数据安全隔离

  • AI智能问答:集成 DeepSeek 大语言模型,提供自然语言交互体验

  • 语义搜索:基于向量相似度的智能检索,超越传统关键词搜索

  • 批量文件上传(2.0):多文件一次入库、自动解析与索引,降低文档迁移成本

  • 公众号文章助手(2.0):火山方舟大模型 + 知识库检索,生成专业大气、来源可复核的公众号稿件初稿

  • 移动端适配(P2):响应式布局 + 抽屉导航,手机浏览器可直接访问

  • OCR 图文识别(P2):图片上传可配置云 OCR 接口提取文字,未启用时返回测试占位文本

  • 审批流(P2):文档/文章发布支持审批队列,管理端可处理通过/驳回

  • 客户成功体系(P2):客户反馈入口、处理看板与成功率指标,便于运营跟进

  • 零代码配置:管理员通过可视化界面完成上传、生成与权限配置,无需改代码

  • 价值主张
    • 让知识资产活起来:从静态存储到动态服务,提升知识利用效率

    • 降低知识获取成本:从平均15分钟缩短到2分钟的知识查找时间

    • 促进知识传承:避免因人员流动造成的知识流失

    3.2 市场定位

    • 技术: AI + 向量检索,前后端分离,微服务友好

    • 易用: Material Design,响应式,零代码管理端

    • 安全: JWT、部门隔离、HTTPS

    • 扩展: REST API、模块化,支持定制集成

    图片


    四、平台技术与系统架构

    经典三层、前后端分离,各组件可独立部署。源码入口:backend/src/main/java/com/company/knowledgebase/。

    4.1 整体架构

    客户端 →(HTTPS)→ Nginx(可选) → React SPA → REST → Spring Boot(Security/JPA/业务)
                                                  ↓
                                        MySQL / 本地文件 / DeepSeek & Embeddings

    4.2 技术栈概览

    层级

    选型

    用途

    前端

    React 18、TypeScript、MUI 5、Router 6、Axios

    SPA、路由守卫、HTTP 拦截

    后端

    Spring Boot 2.7、Security、JPA、Tika、OkHttp

    业务、JWT、文档解析、AI 调用

    数据

    MySQL 8(生产)/ H2(开发)

    结构化数据;向量存 JSON 字段

    AI

    DeepSeek、OpenAI Embeddings、余弦相似度

    问答、语义检索(可演进向量库)

    4.3 架构要点

    分层: 表现层(React)→ 业务层(Service)→ 数据访问(JPA)→ 持久化(MySQL + 文件)。

    安全链: JWT 过滤器 → AuthenticationManager → @PreAuthorize → 部门过滤(PermissionUtil)→ 业务。

    数据流:

    • 文档:上传 → Tika 抽取 → 分块 →(可选)Embeddings → KnowledgeEntry

    • 问答:问句嵌入 → EmbeddingService 取片段 → ChatService 组 prompt → DeepSeek → 落库

    详见 DocumentController、ChatService、EmbeddingService。

    图片


    五、平台核心业务功能

    权限、文档、检索、问答、写稿、管理——六大模块,均按部门边界过滤。

    5.1 用户权限管理

    角色

    权限范围

    SUPER_ADMIN

    全系统、全部门、用户/部门/参数管理、审计日志查看

    ADMIN

    本部门文档浏览/搜索/问答;用户管理需 SUPER_ADMIN

    USER

    本部门文档浏览、搜索、AI 问答

    用户可多部门关联(user_departments);普通用户与部门管理员的文档/搜索/问答/公众号写作均按部门过滤;仅 SUPER_ADMIN 可跨部门查看全库。

    JWT 认证: 登录校验 → 签发 HS512 Token → 前端携带 → 后端解析;无 Session,支持分布式部署。

    5.2 文档管理

    格式: PDF / Office / TXT / Markdown / HTML 等,Apache Tika 解析(通用文本抽取,不含专用 OCR 引擎)。

    访问控制:GET /api/documents/{id} 校验当前用户是否属于文档所在部门;越权返回 403。

    单文件:POST /api/documents/upload — multipart → Tika → 落库 → 生成 KnowledgeEntry 与向量。

    批量上传(2.0):

    说明

    接口

    POST /api/documents/upload-batch

    前端

    DocumentUpload

     多选、选部门、进度反馈

    索引

    上传成功后逐个触发索引接口

    分类: 按部门(必填)、类别、时间、上传者;长文档分块后建向量与全文索引。支持单条删除与手动/批量索引(列表多选删除尚未实现)。

    图片

    5.3 智能搜索

    • 关键词: JPA LIKE 检索 + 部门过滤

    • 语义: OpenAI 兼容 Embeddings + 余弦相似度;默认启用(embeddings.enabled=true)。可选接入 Milvus(milvus.enabled=true)做 ANN 检索;未启用 Milvus 时在部门范围内检索,避免全表扫描

    • 筛选: 普通用户/ADMIN 限本部门;SUPER_ADMIN 可跨部门

    5.4 AI 智能问答

    自然语言提问、多轮对话、来源标注、会话历史。聊天消息按用户隔离,不可读取他人 sessionId 会话。流程:检索片段 → ChatService 组 prompt → DeepSeek → 落库。

    5.4.1 公众号文章助手(2.0)

    页面 /wechat-article:先按用户部门权限检索知识库再写作,返回 Markdown + sourcesUsed。

    对比项

    通用大模型

    本系统助手

    事实来源

    训练数据

    知识库摘录

    可追溯

    返回引用条目

    资料不足

    易编造

    提示需补充

    方法

    路径

    POST

    /api/articles/wechat/generate

    GET

    /api/articles/wechat/history

    、/history/{id}

    POST

    /api/articles/wechat/history/{id}/sync-draft

    (multipart:可选 title、author、coverImage)

    草稿箱同步配置(可选): 设置 WECHAT_MP_ENABLED=true、WECHAT_MP_APP_ID、WECHAT_MP_APP_SECRET;在公众平台配置服务器 IP 白名单;上传封面或配置 WECHAT_MP_DEFAULT_COVER_MEDIA_ID(永久素材 thumb)。已有库执行 database/migrate-v1.3-wechat-draft-sync.sql。

    火山方舟 Coding Plan(默认 doubao-seed-2.0-pro);入口:WeChatArticleController、WeChatArticleService、WeChatArticle.tsx。

    5.5 系统管理与体验

    管理端: 部门/用户 CRUD、多部门授权、文档与用户统计;操作审计 侧边栏「审计日志」(SUPER_ADMIN,GET /api/audit-logs);表结构见 database/init.sql。

    体验: MUI 响应式布局、浅色主题、上传与索引进度反馈。

    图片


    六、平台独特优势

    与同类方案相比:部门级隔离 + 有据问答 + 知识约束写稿,而非泛聊天。

    6.1 技术优势

    • 架构: 前后端分离、REST 无状态,前端/后端可独立部署,易拆微服务

    • AI: DeepSeek 多轮问答 + Embeddings 语义检索 + Tika 自动解析分块

    • 工程: TypeScript 编译期检查 + Spring Boot 自动配置与统一异常处理

    6.2 安全优势

    • 权限: RBAC 三角色 + 用户-部门多对多;文档、搜索、问答、写稿全链路部门过滤

    • 认证: JWT(HS512)无 Session;密码 BCrypt;方法级 @PreAuthorize

    • 审计: 登录、文档上传/删除、用户变更等写入 audit_logs

    • 生产: 强 jwt.secret、HTTPS、敏感密钥仅环境变量;用户密码字段 API 不返回(@JsonIgnore)

    6.3 业务优势

    • 零代码: 部门/用户/权限可视化配置,初始化脚本含示例数据

    • 开箱即用: 前后端 + SQL 一体,约 30 分钟可完成首套部署

    • 可集成: REST API 标准化,权限模型可扩展

    6.4 性能优势

    • 前端: SPA 懒加载,静态资源可 CDN

    • 批量(2.0):upload-batch、上传后批量索引、列表多选删除

    • 扩展: 无状态多实例 + 负载均衡;向量生成可异步,大规模可迁向量库

    图片


    七、平台安装使用

    标准部署链路:初始化数据库 → 打包后端 API → 构建管理后台 → Nginx 反代 → 进程守护。

    7.1 环境要求

    环境

    要求

    开发

    JDK 8+、Node 16+、Maven 3.6+、MySQL 8+(或 H2)、Git

    生产

    Linux、2 核 / 4GB+(推荐 8GB)、50GB+ 磁盘、Nginx 1.18+、HTTPS 证书

    7.2 数据库初始化

    git clone <仓库URL> && cd company-knowledge-devlop
    mysql -u root -p < database/init-production.sql

    生产账号见 database/init-production.sql 末尾说明;本地 H2 开发无需执行上述脚本,使用 –spring.profiles.active=local 即可。

    7.3 后端打包与部署

    打包:

    cd backend
    mvn clean package -DskipTests
    # 产物:target/knowledgebase.jar

    运行(生产 profile,默认端口 13085):

    java -jar target/knowledgebase.jar –spring.profiles.active=prod

    后台守护(示例):

    mkdir -p logs
    nohup java -jar target/knowledgebase.jar \\
      –spring.profiles.active=prod \\
      > logs/backend.log 2>&1 &

    生产配置(application-prod.properties 或环境变量覆盖):

    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/knowledgebase?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    spring.datasource.username=your_user
    spring.datasource.password=your_password
    server.port=13085
    jwt.secret=请替换为 openssl rand -base64 48 级别长度
    deepseek.api.key=${DEEPSEEK_API_KEY:}
    embeddings.enabled=${EMBEDDINGS_ENABLED:true}
    milvus.enabled=${MILVUS_ENABLED:false}
    codeplan.api.key=${CODEPLAN_API_KEY:}
    codeplan.model=${CODEPLAN_MODEL:doubao-seed-2.0-pro}

    # OCR(可选:图片上传自动提取文字,支持 baidu/tencent/custom 等自定义 HTTP 接口)
    ocr.enabled=${OCR_ENABLED:false}
    ocr.provider=${OCR_PROVIDER:custom}
    ocr.api.url=${OCR_API_URL:}
    ocr.api.key=${OCR_API_KEY:}
    ocr.api.secret=${OCR_API_SECRET:}

    # 审批流(开启后文档上传/文章生成自动进入审批队列)
    approval.auto-enabled=${APPROVAL_AUTO_ENABLED:false}

    Milvus(可选,大规模语义检索): 部署 Milvus 后设置 milvus.enabled=true,并配置 milvus.host / milvus.port / embeddings.dimension=1536。

    健康检查:

    curl http://127.0.0.1:13085/api/auth/health
    # 期望:Auth service is running

    Docker(可选):

    cd backend && mvn clean package -DskipTests
    docker build -t knowledgebase:latest .
    docker run -d -p 13085:8080 \\
      -e SPRING_PROFILES_ACTIVE=prod \\
      -e SPRING_DATASOURCE_URL='jdbc:mysql://host:3306/knowledgebase' \\
      knowledgebase:latest

    7.4 管理后台打包与部署

    管理后台为 React SPA,生产环境挂载在 /knowledgeWeb 路径下。

    构建:

    cd frontend
    npm install
    npm run build
    # 产物:frontend/build/(package.json 已配置 homepage=/knowledgeWeb)

    部署静态资源:

    # 将 build/ 同步至 Nginx 站点目录,例如:
    sudo mkdir -p /etc/www/website/knowledgeWeb
    sudo cp -r frontend/build/* /etc/www/website/knowledgeWeb/
    sudo chown -R nginx:nginx /etc/www/website/knowledgeWeb

    或使用项目脚本(需 root,目标路径见 deploy_frontend.sh):

    sudo ./deploy_frontend.sh

    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;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    完整示例见仓库 nginx.conf。配置变更后执行 nginx -t && systemctl reload nginx。

    7.5 启动验证

    步骤

    命令 / 地址

    期望结果

    后端存活

    curl http://127.0.0.1:13085/api/auth/health

    返回 Auth service is running

    前端可访问

    https://<域名>/knowledgeWeb/

    出现登录页

    登录鉴权

    admin

     / xlh12345(生产默认)

    进入管理后台仪表盘

    API 连通

    浏览器 Network 中 /knowledgeWeb/api/ 请求

    状态 200,非 HTML

    本地联调:

    # 终端 1:后端(H2,8080)
    cd backend && mvn spring-boot:run -Dspring-boot.run.profiles=local

    # 终端 2:前端(3000,代理至 8080)
    cd frontend && npm start
    # 访问 http://localhost:3000/ ,账号 admin / admin123

    7.7 自动化测试

    类型

    工具

    命令

    覆盖范围

    后端 API 集成

    Spring Boot Test

    cd backend && mvn test

    登录、文档、知识检索、问答、权限、管理接口

    前后端 E2E

    Playwright

    cd e2e && npm install && npx playwright install chromium && npm test

    UI 页面、API 代理、上传、问答(默认 backend 8088 / frontend 3008,避免 8080 冲突)

    一键全量

    Shell

    ./scripts/run-integration-tests.sh

    先后端再 E2E

    本地 E2E 默认账号 admin / admin123;Playwright 会自动拉起 backend(local + H2,端口 8088)与 frontend(3008)。若本机 8080 已被其他程序占用,不影响 E2E。报告:e2e/playwright-report/index.html。

    7.6 配置与运维

    • 数据库: 生产用 database/init-production.sql;已有库升级执行 database/migrate-v1.2-security-audit.sql、database/migrate-v1.3-wechat-draft-sync.sql

    • AI: 问答 DEEPSEEK_API_KEY;向量 OPENAI_API_KEY(Embeddings);公众号写作 CODEPLAN_API_KEY;草稿同步 WECHAT_MP_*

    • 向量检索:embeddings.enabled=true(默认);大规模建议 milvus.enabled=true 并部署 Milvus(见 application-prod.properties)

    • 安全: 密钥走环境变量,全站 HTTPS

    • Docker(可选):backend/Dockerfile,mvn package 后 docker build

    • 排障: 查端口、JDBC、CORS、出网;model is not supported 检查 CODEPLAN_MODEL;topic 需 VARCHAR(2000)

    图片


    八、应用场景及使用案例说明

    典型落地路径与效益参考,便于内部评审对齐预期。

    8.1 企业案例(摘要)

    技术公司(200+ 人): 按技术栈/项目分类入库 → 自然语言问规范(如 JWT 接入)→ 项目组权限隔离。效果:新人上手 2 周→3–5 天,重复咨询显著减少。

    咨询公司(80+ 人): 按行业/业务类型建案例库 → 新项目输入需求,语义检索相似历史方案 → 顾问裁剪进标书。效果:项目准备约减半,方案一致性提升。

    8.2 功能场景

    日常问答: HR 制度、技术规范、客服 SOP——答案须引用已入库文档,不可替代官方资料。

    部门权限:

    角色

    本部门

    其他部门

    普通员工

    ✅ 查看

    部门管理员

    ✅ 管理

    超级管理员

    ✅ 全部

    文档生命周期: 上传 → Tika 解析 → 分块 KnowledgeEntry → 绑定 departmentId。版本化、定时清理等为扩展能力,以仓库实际代码为准。

    8.3 效益与建议

    场景

    传统

    本系统

    提升

    查技术文档

    15–30 分钟

    2–5 分钟

    ~80%

    业务流程咨询

    20–40 分钟

    3–8 分钟

    ~75%

    重复性问题

    10–20 分钟/次

    即时

    ~90%

    落地建议: 统一分类与命名;最小权限 + 定期审权限;问答后核对来源;按反馈持续补文档。


    🚀 快速开始

    体验访问

    • 演示地址:https://www.qdzjkf.com/knowledgeWeb/

    • 本地后台入口:http://localhost:3000/knowledgeWeb/(开发环境)

    • 测试账号(与 database/init-production.sql 一致):

      • 超级管理员:admin / xlh12345

      • 部门管理员:manager / manager123

      • 普通用户:user / user123

      • 本地 H2 开发(local profile):admin / admin123

    赞(0)
    未经允许不得转载:171主机测评 » 企业知识库 2.0|可问、可搜、可管、可写——火山方舟驱动的企业知识中台
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址