跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaAIjava算法

MaxKB4j 基于 Java 的 RAG 知识库与 LLM 工作流平台技术解析

MaxKB4j 是一个基于 Java Spring Boot 和 LangChain4j 构建的开源 RAG 知识库及 LLM 工作流平台。支持多模型集成、可视化编排、知识库问答及多模态能力。采用 PostgreSQL 向量存储,提供完整的前后端架构,涵盖应用管理、对话服务、工作流引擎及工具扩展,适合企业级智能问答系统开发。

修罗发布于 2026/3/27更新于 2026/10/2187 浏览
MaxKB4j 基于 Java 的 RAG 知识库与 LLM 工作流平台技术解析

MaxKB4j 技术文档

项目概述

MaxKB4j(Max Knowledge Base for Java)是一个基于 Java/Spring Boot 和 LangChain4j 构建的开源 RAG(检索增强生成)知识库及 LLM 工作流平台。它专为构建企业级智能问答系统而设计,支持多模型集成、可视化工作流编排、知识库问答和多模态能力。

核心特性

  • 开箱即用的知识库问答:支持上传本地文档或自动抓取网页内容,自动完成文本分块 → 向量化 → 向量数据库存储 → RAG 流程构建。
  • 模型无关的灵活集成:支持多种主流大语言模型(OpenAI、Claude、Gemini、DeepSeek、Qwen、Ollama 等),方便切换。
  • 可视化工作流编排:内置低代码 AI 工作流引擎,支持条件分支、函数调用、多轮对话记忆,让复杂逻辑变得直观。
  • MCP 协议支持:实现 Model Context Protocol,使 AI 能够理解代码上下文和项目结构,扩展性更强。
  • 多模态能力:支持语音识别 (ASR)、语音合成 (TTS)、OCR、图像生成,满足多样化场景需求。

技术栈

类别技术
后端框架Java 21, Spring Boot 3.5.1
AI 框架LangChain4j 1.12.1
数据库PostgreSQL 15+ (pgvector 扩展)
全文搜索MongoDB 6.0+
缓存Caffeine
认证授权Sa-Token 1.39.0
ORMMyBatis-Plus 3.5.9
API 文档Knife4j (OpenAPI 3)
前端Vue 3.5, TypeScript, Element Plus, LogicFlow
构建工具Maven, Vite

项目架构概览

项目采用模块化设计,前后端分离,主要目录结构如下:

MaxKB4j/
├── maxkb4j-common/      # 公共模块 - 通用工具、常量、异常处理
├── maxkb4j-core/        # 核心模块 - AI 助手、事件处理、LangChain4j 集成
├── maxkb4j-service-api/ # 服务 API 定义层 - 实体、DTO、Mapper 接口
│   ├── maxkb4j-application-api/ # 应用相关 API
│   ├── maxkb4j-knowledge-api/   # 知识库相关 API
│   ├── maxkb4j-model-api/       # 模型相关 API
│   ├── maxkb4j-user-api/        # 用户相关 API
│   ├── maxkb4j-workflow-api/    # 工作流相关 API
│   ├── maxkb4j-tool-api/        # 工具相关 API
│   ├── maxkb4j-chat-api/        # 聊天相关 API
│   ├── maxkb4j-folder-api/      
│   ├── maxkb4j-oss-api/         
│   ├── maxkb4j--api/      
│   └── maxkb4j-trigger-api/     
├── maxkb4j-service/           
│   ├── maxkb4j-application/   
│   ├── maxkb4j-knowledge/     
│   ├── maxkb4j-model/         
│   ├── maxkb4j-workflow/      
│   ├── maxkb4j-tool/          
│   ├── maxkb4j-chat/          
│   ├── maxkb4j-oss/           
│   ├── maxkb4j-/        
│   └── maxkb4j-trigger/       
├── maxkb4j-start/             
└── ui/                        
# 文件夹相关 API
# 对象存储相关 API
system
# 系统相关 API
# 触发器相关 API
# 服务实现层 - 业务逻辑实现
# 应用服务实现
# 知识库服务实现
# 模型服务实现
# 工作流服务实现
# 工具服务实现
# 聊天服务实现
# 对象存储服务实现
system
# 系统服务实现
# 触发器服务实现
# 启动模块 - 配置、监听器、入口
# 前端项目 - Vue 3 应用

核心模块详解

1. maxkb4j-common(公共模块)

路径:maxkb4j-common/src/main/java/com/maxkb4j/common/

这里提供了项目通用的基础设施,比如统一响应封装 R.java、全局异常处理 GlobalExceptionHandler.java 以及 Sa-Token 权限工具 StpKit.java。包结构清晰,涵盖了从注解、切面到类型处理器的各个层面。

2. maxkb4j-core(核心模块)

路径:maxkb4j-core/src/main/java/com/maxkb4j/core/

这是 AI 能力的核心所在。除了基础的 Assistant 接口外,还实现了压缩查询、意图分类、NL2SQL 等多种专用助手。事件系统(如 DocumentIndexEvent)负责在关键节点触发逻辑,配合 LangChain4j 的 AppChatMemory 管理会话状态。

3. maxkb4j-service-api(服务 API 层)

路径:maxkb4j-service-api/

定义了服务接口、实体、DTO 和 Mapper。主要实体包括应用配置、知识库、文档、段落、向量嵌入等。数据库表结构方面,重点在于 embedding 表,用于存储向量数据以支持语义检索。

4. maxkb4j-service(服务实现层)
4.1 应用服务

核心功能涵盖应用管理、聊天服务(简单聊天与工作流聊天)、访问令牌及 API Key 管理。聊天 Pipeline 架构设计得很巧妙,包含生成用户消息、重置问题、搜索知识库和最终聊天步骤,保证了流程的可控性。

4.2 知识库服务

支持 PDF、Word、TXT、Markdown、HTML、URL 等多种格式的文档解析。检索策略上提供全文检索、混合检索(向量 + 全文)以及 PostgreSQL 向量索引,满足不同精度需求。

4.3 模型服务

支持 OpenAI、Anthropic、Google、DeepSeek、阿里云、腾讯、字节、百度、智谱、Kimi、Ollama 等多种提供商。模型类型覆盖 ChatModel、EmbeddingModel、ImageModel 等,甚至包括 STT/TTS 模型。

4.4 工作流服务

工作流执行器 (WorkFlowActuator) 是调度中心,支持 START、AI_CHAT、SEARCH_KNOWLEDGE、CONDITION、HTTP_CLIENT、TOOL、MCP 等丰富的节点类型。条件比较器也做得很细致,支持等于、包含、大小判断、空值判断等多种逻辑。

4.5 工具服务

提供工具管理、连接验证及导入导出功能,通过 McpToolUtil 和 SkillsToolUtil 实现 MCP 协议和技能工具的集成。

5. maxkb4j-start(启动模块)

路径:maxkb4j-start/src/main/java/com/maxkb4j/start/

负责配置类(MyBatis-Plus、Sa-Token、MongoDB 等)和监听器(应用启动、数据索引、问题生成)。数据库迁移脚本位于 V1__init_tables.sql 等文件中,确保环境初始化一致。

6. ui(前端项目)

路径:ui/

基于 Vue 3.5 + TypeScript,使用 Element Plus 组件库和 LogicFlow 工作流编辑器。页面视图涵盖登录、应用概览、聊天、知识库、文档、模型、工具及系统设置等功能。

API 接口

认证接口
POST /api/user/login  # 用户登录
POST /api/user/logout # 用户登出
GET  /api/user/info   # 获取用户信息
应用接口
GET  /api/application            # 获取应用列表
POST /api/application            # 创建应用
PUT  /api/application/{id}       # 更新应用
DELETE /api/application/{id}     # 删除应用
GET  /api/application/{id}       # 获取应用详情
POST /api/application/chat       # 聊天接口
知识库接口
GET  /api/knowledge            # 获取知识库列表
POST /api/knowledge            # 创建知识库
PUT  /api/knowledge/{id}       # 更新知识库
DELETE /api/knowledge/{id}     # 删除知识库
GET  /api/knowledge/{id}       # 获取知识库详情
文档接口
GET  /api/document            # 获取文档列表
POST /api/document            # 上传文档
DELETE /api/document/{id}     # 删除文档
POST /api/document/split      # 文档分块
POST /api/document/index      # 文档索引
模型接口
GET  /api/model            # 获取模型列表
POST /api/model            # 创建模型
PUT  /api/model/{id}       # 更新模型
DELETE /api/model/{id}     # 删除模型
GET  /api/provider         # 获取提供商列表

部署指南

系统要求
  • Java 21+
  • Maven 3.8+
  • PostgreSQL 12+ (启用 pgvector 扩展)
  • MongoDB 6.0+ (可选,用于全文搜索)
  • Node.js 20+ (前端构建)
Docker 部署
docker run --name maxkb4j -d \
--restart always -p8080:8080 \
-e SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/MaxKB4j \
-e SPRING_DATASOURCE_USERNAME=postgres \
-e SPRING_DATASOURCE_PASSWORD=123456 \
-e SPRING_DATA_MONGODB_URI=mongodb://admin:123456@localhost:27017/MaxKB4j?authSource=admin \
registry.cn-hangzhou.aliyuncs.com/tarzanx/maxkb4j
Docker Compose 部署
version: '3'
services:
  maxkb4j:
    image: registry.cn-hangzhou.aliyuncs.com/tarzanx/maxkb4j
    ports:
      - "8080:8080"
    environment:
      - SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/MaxKB4j
      - SPRING_DATASOURCE_USERNAME=postgres
      - SPRING_DATASOURCE_PASSWORD=123456
      - SPRING_DATA_MONGODB_URI=mongodb://admin:123456@mongo:27017/MaxKB4j?authSource=admin
    depends_on:
      - postgres
      - mongo
  postgres:
    image: pgvector/pgvector:pg15
    environment:
      POSTGRES_DB: MaxKB4j
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: 123456
    volumes:
      - postgres_data:/var/lib/postgresql/data
  mongo:
    image: mongo:6.0
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: 123456
    volumes:
      - mongo_data:/data/db
volumes:
  postgres_data:
  mongo_data:
本地开发
# 后端
cd MaxKB4j
mvn spring-boot:run -pl maxkb4j-start

# 前端
cd ui
npm install
npm run dev

配置说明

application.yml 主要配置
spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/MaxKB4j
    username: postgres
    password: 123456
  data:
    mongodb:
      uri: mongodb://admin:123456@localhost:27017/MaxKB4j?authSource=admin

sa-token:
  token-name: Authorization
  timeout: 2592000
  active-timeout: -1
  is-concurrent: true
  is-share: true
  token-style: uuid
  is-log: false

扩展开发

添加新的模型提供商
  1. 继承 AbsModelProvider 类。
  2. 实现必要的方法:getModelList() 返回支持的模型列表,buildChatModel() 构建对话模型,buildEmbeddingModel() 构建嵌入模型。
  3. 注册为 Spring Bean。
添加新的工作流节点
  1. 在 NodeType 枚举中添加节点类型。
  2. 创建节点数据类(继承 AbsNode)。
  3. 创建节点处理器(实现 INodeHandler)。
  4. 添加 @NodeHandlerType 注解。
添加新的文档解析器
  1. 实现 DocumentParser 接口。
  2. 注册为 Spring Bean。

许可证

GNU General Public License v3.0 (GPLv3)

相关资源

  • Gitee Issues

目录

  1. MaxKB4j 技术文档
  2. 项目概述
  3. 核心特性
  4. 技术栈
  5. 项目架构概览
  6. 核心模块详解
  7. 1. maxkb4j-common(公共模块)
  8. 2. maxkb4j-core(核心模块)
  9. 3. maxkb4j-service-api(服务 API 层)
  10. 4. maxkb4j-service(服务实现层)
  11. 4.1 应用服务
  12. 4.2 知识库服务
  13. 4.3 模型服务
  14. 4.4 工作流服务
  15. 4.5 工具服务
  16. 5. maxkb4j-start(启动模块)
  17. 6. ui(前端项目)
  18. API 接口
  19. 认证接口
  20. 应用接口
  21. 知识库接口
  22. 文档接口
  23. 模型接口
  24. 部署指南
  25. 系统要求
  26. Docker 部署
  27. Docker Compose 部署
  28. 本地开发
  29. 后端
  30. 前端
  31. 配置说明
  32. application.yml 主要配置
  33. 扩展开发
  34. 添加新的模型提供商
  35. 添加新的工作流节点
  36. 添加新的文档解析器
  37. 许可证
  38. 相关资源

更多推荐文章

查看全部
  • OpenClaw SOUL.md:用自然语言定义 AI Agent 的身份与边界
  • 双指针算法专题:有效三角形与多数之和
  • Java 异常处理:核心原理与实战最佳实践
  • RAG(检索增强生成)技术详解:原理、架构与应用
  • 电商 AI 导购系统自动化测试实践
  • 基于飞书 AI 知识库的高效文档问答系统搭建指南
  • AI PPT 生成工具性能评测与选择指南
  • C++ 手写 HTTP 服务器:从请求解析到响应构建
  • 大模型时代 Java 程序员如何借助 LangChain4j 构建智能应用
  • AI 大模型时代个人工作站硬件配置与成本分析
  • 使用 LLaMA-Factory 微调 Qwen2.5 模型并转换为 GGUF 格式部署
  • LazyLLM 代码专家智能体实战与测评
  • Flutter Genkit 组件适配鸿蒙系统:AI 流式响应与提示词工程
  • C++ 测试与调试:从框架到工具链的实践备忘
  • 前端音频录制工具:AudioRecorder 类实现与使用指南
  • VS Code 中 GitHub Copilot 安装配置与高阶使用指南
  • PaddleOCR-VL-WEB 核心优势与本地部署推理教程
  • Linux iperf3 网络带宽与质量测试工具详解
  • 红黑树的底层原理及 C++ 实现
  • React Native Android UI 性能调试实践

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online