项目概览
MaxKB4j (Max Knowledge Base for Java) 是基于 Java/Spring Boot 和 LangChain4j 打造的开源 RAG 知识库及 LLM 工作流平台。它专为构建企业级智能问答系统而生,集成了多模型支持、可视化编排、知识库问答及多模态能力。
关键能力
- 知识库问答: 支持本地文档上传或网页抓取,自动完成分块、向量化及存储流程。
- 模型集成: 兼容 OpenAI、Claude、Gemini、DeepSeek、Qwen、Ollama 等多种主流大模型。
- 可视化编排: 内置低代码引擎,支持条件分支、函数调用及多轮对话记忆。
- MCP 协议: 支持 Model Context Protocol,增强 AI 对代码上下文的理解。
- 多模态: 涵盖 ASR、TTS、OCR 及图像生成能力。
技术栈
| 类别 | 技术选型 |
|---|---|
| 后端框架 | Java 21, Spring Boot 3.5.1 |
| AI 框架 | LangChain4j 1.12.1 |
| 数据库 | PostgreSQL 15+ (pgvector) |
| 缓存 | Caffeine |
| 认证授权 | Sa-Token 1.39.0 |
| ORM | MyBatis-Plus 3.5.9 |
| 前端 | Vue 3.5, TypeScript, Element Plus |
架构设计
项目采用模块化分层结构,便于维护与扩展。
MaxKB4j/
├── maxkb4j-common/ # 公共工具、异常处理
├── maxkb4j-core/ # AI 助手、事件处理、LangChain4j 集成
├── maxkb4j-service-api/ # 服务接口定义层
├── maxkb4j-service/ # 业务逻辑实现层
├── maxkb4j-start/ # 启动模块、配置入口
└── ui/ # Vue 3 前端应用
核心模块解析
基础模块 (common)
提供通用基础设施,包括统一响应封装 R.java、全局异常处理 GlobalExceptionHandler 以及 Sa-Token 权限工具。AOP 切面负责权限校验,缓存层管理会话状态。
核心引擎 (core)
这是 AI 能力的中枢。定义了 Assistant 接口体系,涵盖压缩查询、意图分类、NL2SQL 等功能。事件系统通过 DocumentIndexEvent 等机制解耦索引与生成过程。
服务层 (service)
包含应用、知识库、模型、工作流等具体业务实现。以应用服务为例,其 Pipeline 架构清晰划分了消息生成、知识库搜索及最终回复步骤,确保流程可控。
工作流引擎
支持丰富的节点类型,从基础的 AI 聊天到复杂的循环控制。开发者可通过 NodeType 枚举扩展新节点,配合 INodeHandler 实现自定义逻辑。条件比较器覆盖了相等、范围、布尔判断等常见场景。
前端交互 (ui)
基于 Vue 3 + TypeScript 构建,使用 LogicFlow 进行工作流可视化编辑。页面覆盖登录、应用管理、知识库配置及系统设置,状态管理采用 Pinia。
部署与配置
运行环境需 Java 21+、PostgreSQL 12+ (启用 pgvector) 及 MongoDB 6.0+。 本地开发可直接运行 Maven 命令启动后端,前端使用 npm 安装依赖后启动。


