项目介绍
AI 知识库(Java)是一套多租户 SaaS 知识库与 RAG 问答系统:把文档变成可检索、可引用、可计量的知识资产,并在答案中保留原文出处。
单进程 kb-app 同时承载知识库业务与 Agent,不额外拆独立 Agent 服务。系统支持文档解析、切片、向量化、混合检索、流式问答与租户配额。
技术栈
- 后端:Java 17、Spring Boot 3.5、Spring AI、MyBatis-Plus
- 数据:MySQL 8(kb)、Qdrant、Redis
- 文件:MinIO
- 前端:Vue 3、Vite、Element Plus
- 接入:Sa-Token SSO、多租户与数据权限
功能清单
| 模块 | 功能 |
|---|---|
| 知识库 | 新建/编辑/启停、embedding 模型与维度、切片大小与重叠、topK 与阈值 |
| 文档管理 | 上传、解析、预览、下载、删除、重建、重新向量化、版本管理 |
| 文档解析 | txt / md / docx / pdf / xlsx;PDF 仅文本层,扫描件明确报错 |
| 切片 | 标题/段落优先切,超长按长度切,保留标题路径与内容哈希 |
| 检索 | 向量召回 + 关键词召回 + RRF 融合 + 可选模型重排 |
| 问答 | 单轮 SSE 流式、多轮会话、引用编号、未命中直接回答「未找到」 |
| Agent | 多跳检索,框架 ReactAgent 与自研 ReAct 两套引擎可选 |
| 多租户 | 租户行级隔离、知识库可见范围、会话归属校验 |
| 计量 | 文档数 / 切片数 / 存储 / 每日问答次数,token 用于成本看板 |
| 运维 | DB 状态机 + ShedLock 补偿、重建向量、AI 调用日志 |
技术架构
kb-admin-ui :3004
↓
kb-app :18005
├─ kb-controller
├─ kb-service
├─ MySQL kb
├─ Qdrant
├─ MinIO / Redis
└─ iam-app :18003
上传文档后先落解析状态,由定时任务推进解析、切片与向量化。检索时租户与知识库范围显式写入向量过滤条件,结果返回后再做一次租户校验兜底。