Spring Boot + LangChain4j 打造爆款!企业级RAG智能问答系统全解析
本文详细介绍了一个基于Spring Boot和LangChain4j的企业级RAG智能对话系统,集成了大语言模型、向量检索、知识库管理等核心功能。系统采用前后端一体架构,支持多路检索策略、置信度路由、流式输出等设计理念。管理后台提供机器人、工具、FAQ、知识库等全方位管理能力,用户门户则面向终端用户提供智能对话体验。核心引擎负责对话编排、多路检索、模型调用等流程,支持多种LLM供应商接入,实现高效的企业智能问答解决方案。
基于 Spring Boot 和 LangChain4j 的企业级 RAG(检索增强生成)智能系统
一、项目总体概述
1.1 项目定位
isy-rag-agent 是一套企业级 RAG 智能对话系统,集成了大语言模型(LLM)、向量检索、知识库管理、FAQ 问答、工具调用(MCP)、联网搜索等核心能力。系统采用前后端一体的单体架构,后端基于 Spring Boot 3.4 + Java 21,前端采用原生 HTML/CSS/JS 实现,通过 RESTful API 进行数据交互,支持 SSE(Server-Sent Events)流式对话输出。
1.2 核心技术栈
| 技术领域 | 技术选型 |
|---|---|
| 后端框架 | Spring Boot 3.4.4、Java 21 |
| AI/LLM 框架 | LangChain4j 1.7.1 |
| 向量数据库 | Milvus(向量存储与相似度检索) |
| 关系数据库 | MySQL + MyBatis-Plus 3.5.5 |
| 连接池 | Alibaba Druid |
| 文档解析 | Apache Tika 2.9.1(支持 PDF、Word、Excel 等) |
| Embedding 模型 | LangChain4j Local Embedding(AllMiniLmL6V2,384 维) |
| 认证鉴权 | JWT(jjwt 0.12.3) |
| 工具协议 | MCP SDK 1.1.0(Model Context Protocol) |
| 响应式/WebFlux | Spring WebFlux(用于 SSE 及 MCP Client) |
| 工具库 | Hutool 5.8.25、Lombok |
1.3 系统架构设计
项目采用分层架构设计,代码组织清晰、职责分明:
com.isy.rag├── bootstrap/ # 业务启动层(按领域划分子包)│ ├── admin/ # 管理后台:Controller / Service / DAO / DTO│ ├── portal/ # 用户门户:Controller / Service / DAO / DTO│ ├── auth/ # 统一认证:登录 / JWT / 鉴权│ └── rag/ # RAG 核心:对话 / 检索 / 模型 / 工具├── framework/ # 基础设施层(通用能力)│ ├── config/ # 配置类(Embedding、Milvus)│ ├── context/ # 上下文管理(Auth、Request、Trace)│ ├── convention/ # 通用约定(Result、ChatMessage、RetrievedChunk)│ ├── database/ # 数据库基础设施(MyBatis-Plus 配置、通用 Entity)│ ├── distributedid/ # 分布式 ID(Snowflake 雪花算法)│ ├── errorcode/ # 错误码体系│ ├── exception/ # 异常体系(全局异常处理)│ ├── idempotent/ # 幂等性 / 限流│ ├── page/ # 分页封装│ ├── trace/ # RAG 链路追踪│ └── web/ # Web 基础设施(JWT、拦截器、CORS)└── RagApplication.java # Spring Boot 启动类
1.4 核心设计理念
- 多路检索策略:支持「优先级」和「并行」两种检索策略,依次或同时检索 FAQ → 知识库 → 工具调用 → 联网搜索四个通道
- 置信度路由:每个检索通道返回置信度评分,达到阈值即提前返回,避免无效检索
- 流式输出:基于 SSE 的实时流式对话,支持深度思考(Thinking)过程输出
- 全链路追踪:从用户提问到最终回答,记录每一个检索通道和模型调用的详细信息
- RBAC 权限控制:基于用户-机器人授权模型,用户只能访问被授权的机器人
- 多模型支持:兼容 OpenAI、DeepSeek、智谱 AI、阿里云百炼、Ollama、Anthropic 等 6 大模型供应商
二、管理后台(Admin)模块
管理后台位于 static/admin/ 目录,提供系统全生命周期的管理能力,包含以下 8 个核心子模块:
2.1 控制台仪表盘

功能概述:系统首页,以数据大屏形式展示核心运营指标。
设计实现:
- 调用
/api/admin/dashboard/stats接口获取聚合统计数据 - 展示五大核心指标:机器人总数、活跃用户数、对话总数、文档总数、模型总数
- 每项指标含有环比增长率动态展示
- 提供快速操作入口:新建机器人、上传文档、添加 FAQ、注册工具
- 底部展示「对话趋势图表」(近 7/30/90 天)和「最近活动列表」(从 Trace 模块获取最新 5 条记录)
2.2 机器人管理

功能概述:AI 机器人的全生命周期管理,创建、配置、关联资源、授权用户。
设计实现:
- 每个机器人关联以下资源:
- 模型(
modelId):指定使用哪个 LLM 模型 - 知识库(
BotKnowledgeDO):关联一个或多个知识库 - FAQ 库(
BotFaqDO):关联 FAQ 问答对 - 工具(
BotToolDO):关联 MCP 工具或本地函数 - 授权用户(
BotUserDO):控制哪些用户可以使用该机器人
- 机器人核心配置项包括:
systemPrompt:系统提示词answerStrategy:检索策略(PRIORITY / PARALLEL)confidenceThreshold:置信度阈值enableThinking:是否启用深度思考enableWebSearch:是否启用联网搜索enableHistory:是否启用会话记忆maxContextChunks:最大上下文分块数
2.3 工具/MCP 管理

功能概述:管理可被机器人调用的外部工具,支持 MCP 协议工具和本地函数两种类型。
设计实现:
- 工具类型包括:
- MCP 工具:通过 MCP(Model Context Protocol)协议连接外部工具服务,使用 WebFlux 实现 SSE 通信
- 本地函数(FUNCTION):Java 本地注册的函数,通过
LocalFunctionRegistry管理函数注册表
- 工具实体(
ToolDO)记录工具名称、编码、类型、描述、配置参数(JSON)、状态等 - 在对话时通过
ToolExecutionService执行工具,由 LLM 驱动智能选择需要调用的工具 - 支持分页查询、创建、更新、删除、状态切换、工具编码唯一性校验
- 提供
/available-functions接口获取可注册的本地函数列表
2.4 FAQ 管理

功能概述:常见问题知识对的录入和管理,作为最高优先级的检索通道。
设计实现:
- 支持分类管理,FAQ 归属不同分类便于管理
- 每条 FAQ 包含:问题、答案、分类、状态、排序等字段
- FAQ 检索时在
FaqRetrievalService中使用语义相似度匹配,返回匹配置信度
2.5 知识库管理

功能概述:企业知识库的创建、文档上传、自动解析分块、向量化存储全流程管理。
设计实现:
- 文档处理流程:
- 用户上传文件 →
FileStorageService本地存储 - Apache Tika 解析文档内容
- 按配置的
chunkSize和chunkOverlap进行文本分块 - 本地 AllMiniLmL6V2 模型生成 384 维向量
- 通过
MilvusService写入 Milvus 向量数据库
- 检索时通过
KnowledgeRetrievalService进行向量相似度搜索,返回最相关的文档片段
2.6 模型管理

功能概述:大语言模型供应商的接入和配置管理,支持多种模型供应商统一管理。
设计实现:
- 后端为
ModelController→ModelService→ModelMapper - 模型实体(
ModelDO)记录完整的模型配置:供应商、模型名、API Key、Base URL、模型类型、最大 Token、超时等 - 支持 6 大模型供应商:OpenAI、Anthropic、阿里云百炼(DashScope)、Ollama、智谱 AI(Zhipu)、DeepSeek
ChatModelFactory根据模型配置动态创建StreamingChatModel或ChatModel实例- 支持的能力标签:CHAT、STREAMING、VISION、THINKING
- 提供连接测试接口(
/test),验证模型配置是否有效 - 支持按供应商、模型类型筛选,启用/禁用状态管理
2.7 用户管理

功能概述:系统用户的账号管理,控制用户对机器人的访问权限。
设计实现:
- 用户实体包含:用户名、密码(加密存储)、昵称、头像、邮箱、手机号、部门、角色、状态等
2.8 链路追踪

功能概述:RAG 对话全链路的追踪和可视化分析,用于问题排查和性能优化。
设计实现:
- 追踪数据模型:
- TraceRun(
RagTraceRunDO):一次完整的对话追踪记录 - TraceNode(
RagTraceNodeDO):追踪中的每个节点(FAQ_RETRIEVE、KB_RETRIEVE、TOOL_CALL、WEB_SEARCH、MODEL_CALL 等)
- 追踪信息通过事件驱动模式采集:
TraceContext(ThreadLocal)维护当前请求的追踪上下文TraceEventPublisher发布追踪事件TraceEventListener监听事件并持久化到数据库
- 每个节点记录:输入参数、输出结果、耗时、置信度、错误信息、Token 使用量
- 支持按机器人、用户、关键词、时间范围、状态筛选
- 基于用户权限隔离:普通用户只能查看自己授权机器人的追踪数据
- 提供对话统计面板和追踪详情查看
三、用户门户(Portal)模块
用户门户位于 static/portal/ 目录,面向终端用户提供 AI 智能对话体验,包含以下 3 个子模块:
3.1 机器人选择(bots.html)

功能概述:用户登录后的首页,展示当前用户被授权使用的机器人列表。
设计实现:
- 调用
/api/portal/bots获取当前用户授权的机器人列表 - 以卡片网格布局展示每个机器人
- 每张机器人卡片展示:
- 头像、名称、描述
- 功能标签(联网搜索、深度思考、会话记忆)
- 统计信息(会话数、最近使用时间)
- 点击「开始对话」按钮跳转到
chat.html?botId=xxx
3.2 智能对话

功能概述:系统的核心交互界面,实现与 AI 机器人的流式对话,支持深度思考展示、引用溯源、文件上传。
设计实现:
- SSE 流式对话:
- 调用
/api/chat/stream接口,通过 EventSource 接收流式响应 - 事件类型包括:
thinking_start、thinking、thinking_end、generation_start、content、references、done - 深度思考模式下,实时展示检索策略、各通道命中情况、置信度等信息
- 深度思考展示:
- 以可折叠的黄色区域展示 AI 的「思考过程」
- 实时输出每个检索通道的执行进度和结果
- 引用溯源面板:
- 按 Tab 分为「参考资料」和「工具调用」两个标签页
- 参考资料展示:网页引用(标题、来源、摘要)、文档引用(文件名、页码)
- 工具调用展示:工具名称、执行状态、执行结果
- 会话管理:
- 调用
/api/portal/conversations管理会话列表 - 支持新建会话、删除会话、置顶会话
- 切换会话时自动加载历史消息
- 联网搜索开关:
- 当机器人启用了联网搜索时,显示开关按钮
- 需同时满足机器人配置和用户手动开启两个条件
- 消息渲染:
- 支持 Markdown 渲染和代码高亮(highlight.js)
- 引用标注渲染为可点击的超链接
- 图片占位符支持加载动画
3.3 用户登录
功能概述:门户端的登录页面,用户通过账号密码登录获取 JWT Token。
设计实现:
- 调用
/api/auth/login接口进行身份验证 - 返回 JWT Token 和用户信息,存储在 localStorage 中
- 登录成功后跳转到机器人列表页(
/portal/bots) - 未登录状态自动重定向到登录页
四、RAG 核心引擎
RAG 核心引擎位于 bootstrap/rag/ 包,是系统的智能中枢,负责对话编排、多路检索、模型调用、工具执行等核心流程。
4.1 对话编排(ChatController + ChatOrchestrationService)
核心流程:接收用户提问 → 加载机器人配置 → 限额检查 → 执行多路检索 → 构建上下文 → 调用 LLM → 流式输出回答
- 请求预处理:加载机器人配置、创建/获取会话、保存用户消息、限额检查
- 多路检索:根据机器人配置的检索策略执行 FAQ/KB/Tool/WebSearch 检索
- 提示词构建:将系统提示词、检索上下文、引用索引、引用规范注入 Prompt
- 上下文管理:
ContextManagementService检测 Token 是否超出模型限制,超限则自动摘要压缩 - 模型调用:优先使用
StreamingChatModel流式输出,失败则降级为ChatModel - 结果持久化:保存 AI 回答、Token 使用量、引用信息到数据库
- 链路追踪:全流程记录耗时和中间结果
4.2 多路检索引擎(RetrievalService + RetrievalCoordinator)
四大检索通道:
| 通道 | 服务 | 说明 |
|---|---|---|
| FAQ 检索 | FaqRetrievalService |
匹配预置 FAQ 问答对,最高优先级 |
| 知识库检索 | KnowledgeRetrievalService |
Milvus 向量相似度搜索,检索文档分块 |
| 工具调用 | ToolExecutionService + McpClientService |
LLM 驱动选择并执行工具 |
| 联网搜索 | WebSearchService |
调用智谱 AI Web Search API |
两种检索策略:
- 优先级策略(PRIORITY):按 FAQ → KB → Tool → WebSearch 顺序执行,达到置信度阈值则提前返回
- 并行策略(PARALLEL):使用
CompletableFuture并行执行所有通道,融合结果
4.3 模型工厂(ChatModelFactory)
- 根据模型配置动态创建
StreamingChatModel或ChatModel - 统一适配 6 大供应商的接口差异
ModelCallService封装统一的模型调用和 Token 计费逻辑
4.4 工具执行与 MCP(ToolExecutionService + McpClientService)
LocalFunctionRegistry:本地函数注册表,管理内置 Java 函数McpClientService:基于 MCP 协议的外部工具客户端,使用 WebFlux 实现 SSE 通信- LLM 根据用户问题智能选择需要的工具,输出工具调用参数
FunctionExecutor执行具体函数调用,返回结果注入上下文
最后
对于正在迷茫择业、想转行提升,或是刚入门的程序员、编程小白来说,有一个问题几乎人人都在问:未来10年,什么领域的职业发展潜力最大?
答案只有一个:人工智能(尤其是大模型方向)
当下,人工智能行业正处于爆发式增长期,其中大模型相关岗位更是供不应求,薪资待遇直接拉满——字节跳动作为AI领域的头部玩家,给硕士毕业的优质AI人才(含大模型相关方向)开出的月基础工资高达5万—6万元;即便是非“人才计划”的普通应聘者,月基础工资也能稳定在4万元左右。
再看阿里、腾讯两大互联网大厂,非“人才计划”的AI相关岗位应聘者,月基础工资也约有3万元,远超其他行业同资历岗位的薪资水平,对于程序员、小白来说,无疑是绝佳的转型和提升赛道。
如果你还不知道从何开始,我自己整理一套全网最全最细的大模型零基础教程,我也是一路自学走过来的,很清楚小白前期学习的痛楚,你要是没有方向还没有好的资源,根本学不到东西!
下面是我整理的大模型学习资源,希望能帮到你。

👇👇扫码免费领取全部内容👇👇

最后
1、大模型学习路线

2、从0到进阶大模型学习视频教程
从入门到进阶这里都有,跟着老师学习事半功倍。

3、 入门必看大模型学习书籍&文档.pdf(书面上的技术书籍确实太多了,这些是我精选出来的,还有很多不在图里)

4、 AI大模型最新行业报告
2026最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

5、面试试题/经验

【大厂 AI 岗位面经分享(107 道)】

【AI 大模型面试真题(102 道)】

【LLMs 面试真题(97 道)】

6、大模型项目实战&配套源码

适用人群

四阶段学习规划(共90天,可落地执行)
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
-
硬件选型
-
带你了解全球大模型
-
使用国产大模型服务
-
搭建 OpenAI 代理
-
热身:基于阿里云 PAI 部署 Stable Diffusion
-
在本地计算机运行大模型
-
大模型的私有化部署
-
基于 vLLM 部署大模型
-
案例:如何优雅地在阿里云私有部署开源大模型
-
部署一套开源 LLM 项目
-
内容安全
-
互联网信息服务算法备案
-
…
👇👇扫码免费领取全部内容👇👇

3、这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)