开源智能体搭建平台MaxKB4j 技术文档

开源智能体搭建平台MaxKB4j 技术文档

MaxKB4j 技术文档

项目概述

MaxKB4j (Max Knowledge Base for Java) 是一个基于 Java/Spring BootLangChain4j 构建的开源的 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/ # 文件夹相关API │ ├── maxkb4j-oss-api/ # 对象存储相关API │ ├── maxkb4j-system-api/ # 系统相关API │ └── maxkb4j-trigger-api/ # 触发器相关API ├── maxkb4j-service/ # 服务实现层 - 业务逻辑实现 │ ├── maxkb4j-application/ # 应用服务实现 │ ├── maxkb4j-knowledge/ # 知识库服务实现 │ ├── maxkb4j-model/ # 模型服务实现 │ ├── maxkb4j-workflow/ # 工作流服务实现 │ ├── maxkb4j-tool/ # 工具服务实现 │ ├── maxkb4j-chat/ # 聊天服务实现 │ ├── maxkb4j-oss/ # 对象存储服务实现 │ ├── maxkb4j-system/ # 系统服务实现 │ └── maxkb4j-trigger/ # 触发器服务实现 ├── maxkb4j-start/ # 启动模块 - 配置、监听器、入口 └── ui/ # 前端项目 - Vue 3 应用 

核心模块详解

1. maxkb4j-common (公共模块)

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

提供项目通用的基础设施:

包名功能
annotation自定义注解(如权限检查 @SaCheckPerm
api统一响应封装(R, ResultCode, IResultCode
aspectAOP 切面(权限检查切面)
cache缓存实现(认证码缓存、聊天缓存、系统缓存)
constant常量定义(应用常量、登录类型、权限、角色类型)
domain领域对象(DTO、VO、表单对象)
enums枚举类型
exception自定义异常
handler全局处理器(异常处理、字段填充)
mpMyBatis-Plus 配置(实体基类、设置实体)
props配置属性类
typehandler自定义类型处理器(JSONB、List、Set 等)
util工具类集合

关键类:

  • R.java - 统一 API 响应封装
  • GlobalExceptionHandler.java - 全局异常处理
  • StpKit.java - Sa-Token 权限工具

2. maxkb4j-core (核心模块)

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

核心 AI 能力实现:

Assistant (AI 助手接口)
类名功能
Assistant基础聊天助手接口
CompressingQueryAssistant压缩查询助手
ExpandingQueryAssistant扩展查询助手
IntentClassifyAssistant意图分类助手
NL2SqlAssistant自然语言转 SQL 助手
ParameterExtractionAssistant参数提取助手
ProblemGenerateAssistant问题生成助手
RouterAssistant路由助手
Event (事件系统)
事件触发时机
DocumentIndexEvent文档索引事件
GenerateProblemEvent问题生成事件
ParagraphIndexEvent段落索引事件
LangChain4j 集成
  • AppChatMemory - 应用聊天记忆管理
  • AssistantServices - 助手服务工厂

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

路径: maxkb4j-service-api/

定义服务接口、实体、DTO、VO 和 Mapper:

主要实体
实体所属模块描述
ApplicationEntityapplication-api应用配置
ApplicationChatEntityapplication-api聊天会话
ApplicationChatRecordEntityapplication-api聊天记录
KnowledgeEntityknowledge-api知识库
DocumentEntityknowledge-api文档
ParagraphEntityknowledge-api段落
ProblemEntityknowledge-api问题
EmbeddingEntityknowledge-api向量嵌入
FolderEntityfolder-api文件夹
数据库表结构

主要数据表:

-- 用户表user(id, email, phone, nickname, username, password, role, is_active)-- 知识库表 knowledge (id, name,type, source_type, embedding_model_id,...)-- 文档表 document (id, knowledge_id, name,type, content,...)-- 段落表 paragraph (id, document_id, content, title,...)-- 向量嵌入表 embedding (id, paragraph_id, embedding vector(1536),...)-- 应用表 application (id, name,type, model_id, workflow,...)-- 聊天记录表 application_chat_record (id, application_id, chat_id, problem_text, answer_text,...)

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

路径: maxkb4j-service/

4.1 maxkb4j-application (应用服务)

核心功能:

  • 应用管理(创建、更新、删除、查询)
  • 聊天服务(简单聊天、工作流聊天)
  • 访问令牌管理
  • API Key 管理
  • 聊天记录管理

关键类:

  • ApplicationService - 应用管理服务
  • ChatSimpleServiceImpl - 简单聊天实现
  • ChatFlowServiceImpl - 工作流聊天实现
  • ChatServiceBuilder - 聊天服务构建器

Pipeline 架构:

PipelineManage ├── GenerateHumanMessageStep # 生成用户消息 ├── ResetProblemStep # 重置问题 ├── SearchDatasetStep # 搜索知识库 └── ChatStep # 聊天步骤 
4.2 maxkb4j-knowledge (知识库服务)

核心功能:

  • 知识库管理
  • 文档解析(PDF、Word、TXT、Markdown、HTML、URL 等)
  • 文档分块
  • 向量索引
  • 检索服务

文档解析器:

解析器支持格式
PdfParserPDF
DocParserWord (doc/docx)
TxtParser纯文本
MDParserMarkdown
HtmlParserHTML
ExcelParserExcel
PptParserPowerPoint
CsvParserCSV
UrlParser网页 URL

检索策略:

  • FullTextRetriever - 全文检索
  • HybridRetriever - 混合检索(向量 + 全文)
  • PgVectorIndexService - PostgreSQL 向量索引
4.3 maxkb4j-model (模型服务)

核心功能:

  • 模型提供商管理
  • 模型实例构建
  • 多种模型类型支持

支持的模型提供商:

提供商类名支持模型
OpenAIOpenAiModelProviderGPT 系列
AnthropicAnthropicProviderClaude 系列
GoogleGeminiModelProviderGemini 系列
DeepSeekDeepSeekModelProviderDeepSeek 系列
阿里云百炼AliYunBaiLianModelProvider通义千问
腾讯TencentModelProvider混元
字节跳动VolcanicEngineModelProvider豆包
百度WenXinModelProvider文心一言
智谱ZhiPuModelProviderGLM 系列
KimiKimiModelProviderMoonshot
OllamaOLlamaModelProvider本地模型
AzureAzureModelProviderAzure OpenAI
SiliconFlowSiliconFlowModelProviderSiliconFlow
XinferenceXInferenceModelProviderXinference

模型类型:

  • ChatModel - 对话模型
  • StreamingChatModel - 流式对话模型
  • EmbeddingModel - 嵌入模型
  • ImageModel - 图像生成模型
  • ScoringModel - 重排序模型
  • STTModel - 语音转文字
  • TTSModel - 文字转语音
4.4 maxkb4j-workflow (工作流服务)

核心架构:

WorkFlowActuator (工作流执行器) ├── ChatWorkflowHandler (聊天工作流处理器) └── KnowledgeWorkflowHandler (知识库工作流处理器) 

节点类型 (NodeType 枚举):

节点类型描述处理器
START开始节点StartNodeHandler
AI_CHATAI 聊天节点LLMNodeHandler
SEARCH_KNOWLEDGE知识库搜索SearchKnowledgeNodeHandler
CONDITION条件节点ConditionNodeHandler
HTTP_CLIENTHTTP 请求HttpNodeHandler
TOOL工具节点ToolNodeHandler
MCPMCP 节点McpNodeHandler
FORM表单节点FormNodeHandler
QUESTION问题节点QuestionNodeHandler
REPLY回复节点DirectReplyNodeHandler
RERANKER重排序节点RerankerNodeHandler
INTENT_CLASSIFY意图分类IntentClassifyNodeHandler
PARAMETER_EXTRACTION参数提取ParameterExtractionNodeHandler
NL2SQL自然语言转SQLNL2SqlNodeHandler
IMAGE_GENERATE图像生成ImageGenerateNodeHandler
IMAGE_UNDERSTAND图像理解-
TEXT_TO_SPEECH文字转语音TextToSpeechNodeHandler
SPEECH_TO_TEXT语音转文字SpeechToTextNodeHandler
DOCUMENT_EXTRACT文档提取DocumentExtractNodeHandler
DOCUMENT_SPLIT文档分块DocumentSpiltHandler
VARIABLE_ASSIGN变量赋值VariableAssignNodeHandler
VARIABLE_AGGREGATE变量聚合VariableAggregationNodeHandler
APPLICATION应用节点ApplicationNodeHandler
LOOP循环节点LoopNodeHandler
LOOP_START循环开始LoopStartNodeHandler
LOOP_BREAK循环跳出LoopBreakNodeHandler
LOOP_CONTINUE循环继续LoopContinueNodeHandler
KNOWLEDGE_WRITE知识库写入KnowledgeWriteHandler
DATA_SOURCE_LOCAL本地数据源DataSourceLocalHandler
DATA_SOURCE_WEBWeb数据源DataSourceWebHandler
USER_SELECT用户选择UserSelectNodeHandler

条件比较器:

  • EqualCompare - 等于
  • ContainCompare - 包含
  • GTCompare/GECompare - 大于/大于等于
  • LTCompare/LECompare - 小于/小于等于
  • IsNullCompare/IsNotNullCompare - 空值判断
  • IsTrueCompare/IsNotTrueCompare - 布尔判断
  • LengthEqualCompare 等 - 长度比较
4.5 maxkb4j-tool (工具服务)

核心功能:

  • 工具管理
  • 工具连接验证
  • 工具导入导出

关键类:

  • ToolService - 工具服务
  • ToolProviderService - 工具提供者服务
  • McpToolUtil - MCP 工具工具类
  • SkillsToolUtil - 技能工具工具类

5. maxkb4j-start (启动模块)

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

配置类
配置类功能
MybatisPlusConfigMyBatis-Plus 配置
SaTokenConfigureSa-Token 认证配置
WebConfigWeb MVC 配置
MongoConfigMongoDB 配置
ThreadPoolConfig线程池配置
Knife4jConfigurationAPI 文档配置
ThymeleafConfig模板引擎配置
监听器
监听器功能
StartedListener应用启动监听器
DataIndexListener数据索引监听器
GenerateProblemListener问题生成监听器
数据库迁移
  • V1__init_tables.sql - 初始化表结构
  • V2__add_table.sql - 新增表
  • V3__add_trigger.sql - 触发器表

6. ui (前端项目)

路径: ui/

技术栈
  • 框架: Vue 3.5 + TypeScript
  • UI 组件: Element Plus 2.12
  • 状态管理: Pinia 3.0
  • 路由: Vue Router 4.5
  • 工作流编辑器: LogicFlow 1.2
  • 图表: ECharts 5.6
  • Markdown: md-editor-v3
  • 构建工具: Vite 6.2
目录结构
ui/src/ ├── App.vue # 根组件 ├── main.ts # 入口文件 ├── components/ # 公共组件 │ ├── ai-chat/ # AI 聊天组件 │ ├── dynamics-form/ # 动态表单组件 │ ├── markdown/ # Markdown 组件 │ └── ... ├── layout/ # 布局组件 ├── views/ # 页面视图 │ ├── application/ # 应用管理 │ ├── application-overview/ # 应用概览 │ ├── chat/ # 聊天页面 │ ├── chat-log/ # 聊天日志 │ ├── chat-user/ # 聊天用户 │ ├── document/ # 文档管理 │ ├── knowledge/ # 知识库管理 │ ├── login/ # 登录页面 │ ├── model/ # 模型管理 │ ├── paragraph/ # 段落管理 │ ├── problem/ # 问题管理 │ ├── system/ # 系统管理 │ ├── system-chat-user/ # 系统聊天用户 │ ├── system-setting/ # 系统设置 │ ├── tool/ # 工具管理 │ └── workflow/ # 工作流编辑 └── workflow/ # 工作流相关 ├── nodes/ # 节点组件 ├── icons/ # 节点图标 └── common/ # 公共组件 
主要页面
页面路径功能
登录/login用户登录
应用概览/application应用列表和管理
聊天/chat智能问答
知识库/knowledge知识库管理
文档/document文档管理
模型/model模型配置
工具/tool工具管理
系统设置/system系统配置

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 \-eSPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/MaxKB4j \-eSPRING_DATASOURCE_USERNAME=postgres \-eSPRING_DATASOURCE_PASSWORD=123456\-eSPRING_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:123456volumes:- postgres_data:/var/lib/postgresql/data mongo:image: mongo:6.0environment:MONGO_INITDB_ROOT_USERNAME: admin MONGO_INITDB_ROOT_PASSWORD:123456volumes:- mongo_data:/data/db volumes:postgres_data:mongo_data:

本地开发

# 后端cd MaxKB4j mvn spring-boot:run -pl maxkb4j-start # 前端cd ui npminstallnpm run dev 

配置说明

application.yml 主要配置

spring:datasource:url: jdbc:postgresql://localhost:5432/MaxKB4j username: postgres password:123456data:mongodb:uri: mongodb://admin:123456@localhost:27017/MaxKB4j?authSource=admin # Sa-Token 配置sa-token:token-name: Authorization timeout:2592000active-timeout:-1is-concurrent:trueis-share:truetoken-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)


相关资源

Read more

<4>,Git多人协作

<4>,Git多人协作

目录 一,同一分支多人协作 1,协作目标 2,流程图解 (1)先链接在远程仓库和两个本地仓库的master和dev分支。 (2)准备工作完成时状态。 3,协作示例 (1)两种添加本地与远程链接的方式。 (2)开发者1:XShell,提交aaa。 (3)开发者2:PowerShell,提交bbb发现有冲突,拉取XShell提交的aaa,改成aaa和bbb再提交。 (4)将dev合并进master,本地操作。 (5)将dev合并进master,还可以使用申请单合并,远程操作。 二,多个分支多人协作 1,协作目标 2,流程图解 (1)先链接在远程仓库和两个本地仓库的feature-1和feature-2分支。 (2)最后合并feature-1和feature-2到master分支。 3,协作示例 (1)开发者1:XShell,本地创建feature-1分支,新增function1文件,提交并创建远程feature-1分支。

By Ne0inhk
【源力觉醒 创作者计划】文心大模型 4.5 开源了,和你一起解锁 AI 从封闭到开放的澎湃势能

【源力觉醒 创作者计划】文心大模型 4.5 开源了,和你一起解锁 AI 从封闭到开放的澎湃势能

「源力觉醒 创作者计划」文心大模型 4.5 开源了,和你一起解锁 AI 从封闭到开放的澎湃势能 文章目录 * 「源力觉醒 创作者计划」文心大模型 4.5 开源了,和你一起解锁 AI 从封闭到开放的澎湃势能 * 一、开篇引入 * 二、文心大模型 4.5 系列开源情况介绍 * 1. 开源的来龙去脉:从博弈到共建 * 2. 开源模型亮点:技术突破与场景适配 * 三、文心大模型 4.5 系列开源给开发者带来的改变 * 1. 降低开发的门槛和花费 * 2. 带来更多创新的机会 * 四、文心大模型 4.5 系列开源对行业生态的作用 * 1. 推动技术交流和进步 * 2. 促进产业协同发展

By Ne0inhk
【2026 最新】下载安装 Git 详细教程 (Windows)

【2026 最新】下载安装 Git 详细教程 (Windows)

一、下载Git 1.下载网址:Git - Downloads (git-scm.com) https://git-scm.com/downloads 网盘链接: 通过百度网盘分享的文件:Git-2.50.1-64-bit.exe 链接:https://pan.baidu.com/s/1lRrAifTBtCYXAA4qr31UkA?pwd=dy6bhttps://pan.baidu.com/s/1lRrAifTBtCYXAA4qr31UkA?pwd=dy6b提取码:dy6b 2.等下载完成,找到下载文件的位置,双击打开安装向导 二、安装Git 1.许可声明点击Next 2.选择安装位置 记住这个位置接下来要用到 3.选择组件 勾选添加在桌面上,

By Ne0inhk
remote: Invalid username or token. Password authentication is not supported for Git operations

remote: Invalid username or token. Password authentication is not supported for Git operations

remote: Invalid username or token. Password authentication is not supported for Git operations. fatal: Authentication failed for… 该文章解决在新系统中进行 git 操作时,第一次的登陆问题,由于Github不再支持使用账号密码进行 Git https 推送,可以采用 ssh 密钥的方式进行长期的推送 1.生成SSH key ssh-keygen -t ed25519 -C "[email protected]" 这里的-t 表示要生成的密钥类型,这里生成的类型为ed25519,是一种椭圆曲线算法,比传统的RSA更加安全、密钥更短,并且速度更快 2.将

By Ne0inhk