标准知识库独立版产品系统

我要开发同款
木鱼2026年11月10日
11阅读

技术信息

语言技术
Java、Node.js、MySQL、uniapp
系统类型
Web、小程序轻应用、H5
行业分类
人工智能、企业服务

作品详情

行业场景

是一套可私有化部署的多租户企业知识库与智能问答平台。背景是资料散落在文档、网页、FAQ 中难以问答,而通用 SaaS 满足不了多租户强隔离与租户内细粒度权限。全局规则强制五层校验、禁止裸写不带 tenant_id 的 SQL、禁止业务模块自写权限判断。工程目标是零外部依赖即可跑通全链路(向量库、Embedding、LLM、限流均可切换或降级)、越权可证明(576 用例 0 失败)、能力可插拔。交付形态为 Spring Boot 单体后端、Vue3 PC 管理端、uni-app 小程序问答端与契约文档;功能覆盖认证、租户隔离、组织成员、权限中心、向量底座、知识库、文档切片、检索问答、分享、API 密钥、审计与配额监控。

功能介绍


请求依次经 JWT 过滤器(校验 X-Tenant-Id 与 token 租户一致)、租户 Filter(建上下文与跨租户拦截)、TenantInterceptor(归属校验)、权限与数据范围切面、审计切面,Service 层由权限 SDK 决策、拦截器保证 SQL 带租户,VO 层脱敏裁剪。
登录先定租户再定位账号(一账号仅属一租户),校验租户状态、BCrypt 密码与 TOTP 后签发 JWT,成败均审计。租户开通即初始化配额,注销走延迟删除定时任务;跨租户访问受双防线加总开关控制并强制审计。组织侧维护部门树(path 与环校验)与邀请,公开邀请以邀请记录租户为准建号并原子占用。
权限决策链为功能权限 → 黑名单 → 文档 ACL(ALLOW 放大、DENY 收敛)→ 数据范围(USER 覆盖 ROLE 取最宽、再部门继承)→ 默认拒绝;变更走事件加主动失效加 5 秒 TTL,拒绝双写审计,模拟器与接口共用同一决策。
文档有五种录入方式,状态机 PENDING_PARSE→PARSED→VECTORIZING→INDEXED→归档/删除;按类型路由解析引擎、按库配置切片;文档 hash 去重、切片 content_hash 命中即复用向量实现增量更新,仅对未向量化切片调 Embedding;任务队列在插入前校验租户并发配额。
问答先过限流与配额,再做改写与多轮上下文(按租户+KB 隔离),向量召回(底座强制租户与 kbId 过滤)与内存 BM25 双路经 RRF 融合,随后逐条静默过滤(切片开关、文档状态、ACL、黑名单、范围、业务条件)、词重叠重排、生成答案(FAQ 取 top1,其余拼接,LLM 失败或无命中则转人工/降级抽取)、脱敏,最后落会话与引用溯源。

项目实现

后端是 Java 17 语法级别,Spring Boot 3.2.4 父工程,Web + Validation + Security + AOP + Data Redis 四个 starter;JWT 用 jjwt 0.12.5(api/impl/jackson 三件套),密码用 spring-security-crypto 的 BCrypt;持久层是 mybatis-plus-spring-boot3-starter 3.5.5,靠它的 TenantLineInnerInterceptor + TenantLineHandler 做租户自动隔离,分页用其插件;迁移用 Flyway(配 flyway-mysql,out-of-order=true 以兼容已迁移环境补低版本锚点);业务库 MySQL 8(mysql-connector-j),向量库 PostgreSQL + pgvector 扩展(postgresql 为 runtime 依赖,走独立的 vectorDataSource/vectorJdbcTemplate Bean 与 Hikari 池,和 MySQL 业务库物理分离);Redis 用于权限缓存和限流,两者都有内存降级实现;接口文档用 springdoc-openapi 2.3.0;Lombok 简化构造器与日志。测试栈是 spring-boot-starter-test(JUnit 5 + Mockito + AssertJ)加 H2。这里值得一提的取舍是刻意不引入重依赖:TOTP(RFC 6238)、BM25 与分词、向量相似度计算、CSV 导出、OpenAI 兼容的 LLM/Embedding HTTP 调用(用 JDK 内置 HttpClient)都是自实现

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论