本文详细介绍了一个基于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 知识库管理

功能概述:企业知识库的创建、文档上传、自动解析分块、向量化存储全流程管理。

设计实现

  • 文档处理流程:
  1. 用户上传文件 → FileStorageService 本地存储
  2. Apache Tika 解析文档内容
  3. 按配置的 chunkSizechunkOverlap 进行文本分块
  4. 本地 AllMiniLmL6V2 模型生成 384 维向量
  5. 通过 MilvusService 写入 Milvus 向量数据库
  • 检索时通过 KnowledgeRetrievalService 进行向量相似度搜索,返回最相关的文档片段

2.6 模型管理

功能概述:大语言模型供应商的接入和配置管理,支持多种模型供应商统一管理。

设计实现

  • 后端为 ModelControllerModelServiceModelMapper
  • 模型实体(ModelDO)记录完整的模型配置:供应商、模型名、API Key、Base URL、模型类型、最大 Token、超时等
  • 支持 6 大模型供应商:OpenAI、Anthropic、阿里云百炼(DashScope)、Ollama、智谱 AI(Zhipu)、DeepSeek
  • ChatModelFactory 根据模型配置动态创建 StreamingChatModelChatModel 实例
  • 支持的能力标签:CHAT、STREAMING、VISION、THINKING
  • 提供连接测试接口(/test),验证模型配置是否有效
  • 支持按供应商、模型类型筛选,启用/禁用状态管理

2.7 用户管理

功能概述:系统用户的账号管理,控制用户对机器人的访问权限。

设计实现

  • 用户实体包含:用户名、密码(加密存储)、昵称、头像、邮箱、手机号、部门、角色、状态等

2.8 链路追踪

功能概述:RAG 对话全链路的追踪和可视化分析,用于问题排查和性能优化。

设计实现

  • 追踪数据模型:
  • TraceRunRagTraceRunDO):一次完整的对话追踪记录
  • TraceNodeRagTraceNodeDO):追踪中的每个节点(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_startthinkingthinking_endgeneration_startcontentreferencesdone
  • 深度思考模式下,实时展示检索策略、各通道命中情况、置信度等信息
  • 深度思考展示
  • 以可折叠的黄色区域展示 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 → 流式输出回答

  1. 请求预处理:加载机器人配置、创建/获取会话、保存用户消息、限额检查
  2. 多路检索:根据机器人配置的检索策略执行 FAQ/KB/Tool/WebSearch 检索
  3. 提示词构建:将系统提示词、检索上下文、引用索引、引用规范注入 Prompt
  4. 上下文管理ContextManagementService 检测 Token 是否超出模型限制,超限则自动摘要压缩
  5. 模型调用:优先使用 StreamingChatModel 流式输出,失败则降级为 ChatModel
  6. 结果持久化:保存 AI 回答、Token 使用量、引用信息到数据库
  7. 链路追踪:全流程记录耗时和中间结果

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)

  • 根据模型配置动态创建 StreamingChatModelChatModel
  • 统一适配 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%免费

在这里插入图片描述

Logo

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

更多推荐