Spring AI 2.0实战:用Cursor打造企业RAG知识库问答系统

项目背景与技术定位
在企业级AI应用落地的浪潮中,基于内部知识库的智能问答系统已成为最主流的开发场景之一。本文介绍的实战项目基于 Spring AI 2.0 框架,结合 RAG(检索增强生成) 技术,打造一套完整的企业内部知识库智能问答 Agent 系统。
RAG(Retrieval-Augmented Generation)是由 Meta AI 团队在 2020 年提出的一种将信息检索与文本生成相结合的技术范式。其核心思想是:在大语言模型生成回答之前,先从外部知识库中检索出与问题最相关的文档片段,将其作为上下文注入到模型的提示词中,从而让模型基于真实数据生成更准确、更可靠的回答。RAG 解决了纯大模型方案的三大痛点:知识截止日期限制(模型训练数据有时效性)、幻觉问题(模型可能生成看似合理但事实错误的内容)、以及无法访问企业私有数据的问题。在企业场景中,RAG 已成为知识库问答、智能客服、文档辅助等应用的事实标准架构。
该项目最大的特色在于开发方式——全程使用 Cursor AI 编程 快速完成,从项目规划、代码生成到 Bug 修复,AI 编程工具贯穿了整个开发生命周期。这代表了当下企业级 Java 应用开发的一种全新范式:开发者从"手写代码"转向"引导 AI 生成并修复代码"。

从整体定位来看,这类 RAG + Agent 系统与智能客服系统一起,构成了当前企业 AI 应用开发的两大主力方向,具有很强的实用价值和可复制性。
核心技术栈解析
后端与前端架构
项目采用了当前主流的技术组合:
- 后端:Spring Boot + Spring AI 2.0
- 前端:Vue 3 + Vite 构建
- 关系数据库:MySQL 8
- 缓存/向量库:Redis(同时承担缓存与向量存储双重职责)
Spring AI 是 Spring 生态在 2023 年底正式推出的 AI 应用开发框架,2.0 版本在 2025 年实现了重大升级。它为 Java 开发者提供了一套统一的抽象层,用于对接各种大语言模型(如 OpenAI、Ollama、百炼等)、向量数据库(如 Redis、Milvus、PGVector 等)以及 RAG 管道组件。Spring AI 的设计哲学延续了 Spring 一贯的"约定优于配置"原则,通过自动装配和统一接口,让开发者可以用极少的代码完成模型切换、提示词模板管理、函数调用、对话记忆等复杂功能。对于庞大的 Java 企业开发社群而言,Spring AI 极大地降低了进入 AI 应用开发领域的门槛。
值得关注的是,项目使用 Redis 作为向量数据库进行向量化存储。向量数据库是 RAG 系统的核心基础设施,其工作原理是:将文本通过嵌入模型(Embedding Model)转换为高维浮点数向量(通常是 768 维或 1024 维),这些向量在数学空间中捕捉了文本的语义信息——语义相近的文本在向量空间中距离更近。当用户提问时,系统将问题同样转换为向量,然后通过余弦相似度或欧氏距离等算法,在向量库中快速找到最相似的文档片段。Redis 从 7.2 版本开始通过 RediSearch 模块原生支持向量索引和近似最近邻(ANN)搜索,支持 HNSW 和 FLAT 两种索引算法,对于百万级以下的向量规模能够提供毫秒级的检索性能。对于中小规模的知识库场景,这是一个成本较低且部署简单的方案,避免了引入 Milvus、Pinecone 等专用向量数据库带来的额外复杂度。
大模型与嵌入模型选择
在大模型接入方面,项目提供了两种方案:
- 云端方案:百炼云平台等在线 API 接口
- 本地方案:Ollama 本地部署
作者主要演示的是 Ollama + Qwen3 4B(对话模型)搭配 Qwen3 Embedding 4B(嵌入模型)的组合。Ollama 是一个开源的本地大模型运行框架,于 2023 年推出后迅速成为开发者本地部署大模型的首选工具。它借鉴了 Docker 的设计理念,将模型的下载、管理和运行封装为简单的命令行操作(如 ollama run qwen3:4b),并提供了兼容 OpenAI 格式的 REST API 接口,使得上层应用可以无缝对接。Qwen3 是阿里巴巴通义团队发布的第三代开源大模型系列,其 4B 参数版本在保持较强推理能力的同时,将显存占用控制在 4GB 左右,非常适合个人开发者在消费级显卡上运行。Qwen3 Embedding 则是专门用于文本向量化的嵌入模型,能将文本转换为高维语义向量。
这一选择充分考虑了学习者的硬件门槛——只需 4GB 显存即可跑通整套系统,大幅降低了本地实践的成本。

从工程实践角度看,同时掌握云端 API 与本地 Ollama 两种接入方式很有必要。云端方案适合快速验证和生产环境高并发场景,本地方案则满足数据私密性要求高的内网部署需求,二者在实际项目中经常需要灵活切换。
RAG知识库的实现要点
多格式文档解析
作为企业级知识库系统,文档格式的兼容性至关重要。该项目支持四种主流文档格式的上传与解析:
- TXT 纯文本文件
- DOC Word 文档
- PDF 便携文档格式
- Markdown 标记语言文档

这四种格式基本覆盖了企业内部文档的绝大多数场景,包括产品使用指南、公司规章制度、技术规范、API 文档等。在 RAG 系统中,文档解析和分块(Chunking)是直接影响检索质量的关键环节。文档解析需要处理不同格式的复杂性:PDF 可能包含表格、图片和多栏排版,DOC 文件涉及微软的 OLE2 或 OOXML 格式解析,Markdown 则需要正确处理标题层级和代码块。Spring AI 2.0 内置了基于 Apache Tika 和 Apache POI 的文档解析能力。分块策略方面,常见方案包括固定长度分块、按段落分块、递归字符分块和语义分块等。合理的分块大小(通常 500-1000 个 token)和适当的重叠(overlap)设置,能有效避免语义被截断的问题,确保检索时能召回完整的知识片段。
文件上传后会依次经历解析、切片、向量化处理,最终存入 Redis 向量库供语义检索使用。
检索增强生成的完整链路
RAG 的核心价值在于:将用户的提问先在向量库中进行语义检索,找到最相关的知识片段,再将这些片段作为上下文传给大模型生成答案。这种方式既解决了大模型知识时效性的问题,也让回答能够基于企业私有数据,同时支持引用溯源。
具体而言,RAG 的完整链路包含以下步骤:首先,用户的问题通过嵌入模型转换为查询向量;接着,系统在 Redis 向量库中执行近似最近邻搜索,返回相似度最高的 Top-K 个文档片段;然后,系统将检索到的片段与用户问题组装成结构化的提示词(Prompt),通常采用类似"请基于以下参考资料回答用户问题"的模板;最后,大模型根据这些上下文信息生成最终答案,并标注引用来源。这种架构使得系统的知识更新只需要重新上传文档即可,无需重新训练模型。
从演示效果来看,系统在回答"员工年假有几天"这类问题时,能够准确检索到相关文档片段并给出带引用的答案。检索结果还会展示"参考的片段",让用户可以追溯答案来源。这种引用机制大大提升了企业场景下答案的可信度和可靠性。
系统功能与权限设计
双角色权限体系
系统区分 管理员 与 普通用户 两类角色:
- 管理员:拥有数据看板、用户管理、知识分类、文档管理等完整权限,可上传知识库文档、管理系统全局配置
- 普通用户:主要使用问答功能,可新建会话、按分类检索知识库、查看历史会话
密码采用 MD5 加密 存储,登录使用演示账号进行功能验证。需要指出的是,MD5 作为哈希算法在当前安全标准下已不被推荐用于密码存储,因为它容易受到彩虹表攻击和暴力破解。在生产环境中,建议使用 BCrypt、SCrypt 或 Argon2 等专为密码哈希设计的算法,这些算法内置了盐值(Salt)机制和可调节的计算成本因子,能有效抵抗各类密码攻击。该项目使用 MD5 主要是出于演示简化的目的。
数据可视化看板
管理后台配备了统计图表功能,覆盖问答量、向量片段数、用户数、知识文档数等核心运营指标,并通过条形图、饼图等形式展示近期趋势、新注册用户、文档分类分布等数据维度。

会话管理与个人中心
普通用户端的问答体验设计较为成熟:支持新建会话、会话分类、历史会话查看与继续追问。回答内容会明确标注引用来源,整体交互体验接近商业化 AI 问答产品的水准。个人中心则提供头像修改、密码修改等基础功能。
会话管理的实现涉及对话历史的持久化存储和上下文窗口管理。在多轮对话场景中,系统需要将历史对话记录一并发送给大模型,以保持对话的连贯性。但由于大模型的上下文窗口有长度限制(如 Qwen3 4B 支持约 32K token 的上下文),系统需要实现滑动窗口或摘要压缩等策略,在保留关键对话信息的同时控制 token 消耗。
Cursor AI编程开发流程详解
本项目最具参考价值的部分,是其完整的 Cursor AI 编程开发流程:
- 新建 Spring Boot 后端项目:搭建基础工程结构
- 新建 Vue 前端项目:初始化前端框架与路由
- 使用 Cursor Plan 模式沟通项目方案:与 AI 协商整体架构设计
- 使用 Agent 模式生成项目代码:批量生成业务逻辑代码
- 使用 Agent 进行 Bug 修复与功能完善:迭代调试直到功能完备
Cursor 是基于 VS Code 深度定制的 AI 编程 IDE,集成了多种大模型(如 Claude、GPT-4 等)作为代码生成引擎。其 Plan 模式允许开发者用自然语言描述项目需求,AI 会生成详细的实现计划和技术方案;Agent 模式则更进一步,AI 可以自主读取项目文件、理解代码上下文、生成完整的代码文件、执行终端命令甚至自动修复编译错误。Cursor 的核心优势在于其对项目级上下文的深度理解——它能索引整个代码仓库,理解模块间的依赖关系,从而生成与现有架构风格一致的代码。
这套流程反映了 AI 编程工具日趋成熟的趋势——开发者的核心工作正在从编写具体代码,转向清晰地描述需求、审阅生成结果、迭代修复问题。这种开发方式将开发者的角色从"代码编写者"提升为"架构设计者和代码审查者",在保持代码质量的同时显著提升开发效率。作者提到该 AI 生成项目的"代码质量特别高",并额外花了两天时间录制了架构与功能模块的实现讲解。这也说明一个关键事实:即便借助 AI 生成代码,理解底层架构与实现原理依然不可或缺。开发者需要具备足够的技术判断力来评估 AI 生成代码的合理性、安全性和可维护性,这反而对开发者的架构思维和技术广度提出了更高的要求。
总结与学习建议
这个基于 Spring AI 2.0 的企业 RAG 知识库问答系统,是一个技术栈完整、场景实用的经典实战项目。它的价值不仅体现在 RAG 检索增强生成技术本身的落地实践上,更在于展示了"Cursor AI 编程工具 + 传统 Java 企业开发"融合的全新工作方式。
对于 Java 开发者而言,掌握以下几项能力将是应对企业 AI 应用开发浪潮的关键:
- Spring AI 2.0 框架的核心用法与配置
- RAG 检索增强生成的完整实现链路
- Redis 向量数据库的使用与优化
- Cursor AI 编程的高效开发流程
- Ollama 本地模型部署与云端 API 的灵活切换
从技术演进的角度来看,RAG 技术本身也在快速迭代。当前业界已经出现了诸多优化方向,包括:混合检索(将关键词检索与向量检索结合)、重排序(Reranking,使用交叉编码器对初步检索结果进行精排)、查询改写(对用户模糊提问进行语义增强)、以及 GraphRAG(基于知识图谱的检索增强)等。掌握了本项目中的基础 RAG 链路后,开发者可以进一步探索这些进阶技术,持续提升系统的检索精度和回答质量。
而低至 4GB 显存的本地运行门槛,也让个人开发者可以低成本上手实践这一完整链路,快速积累企业级 AI 应用的开发经验。
相关推荐

Calendly AI转型:从排程工具到会议全流程平台
Calendly推出AI会议记录助手Notetaker和智能助手Callie,从单一排程工具转型为覆盖会议前中后全流程的AI生产力平台。深度解析其产品逻辑、竞争优势与面临的挑战。

Prized:非工程师也能构建安全合规的内部工具
Prized是一款安全优先的AI无代码平台,让运营、客服、财务团队无需编程即可构建内部工具。支持数据权限控制、审计追踪和企业级登录集成,解决内部工具开发排队等待的痛点。

Lifelong评测:以家庭为核心的AI健康管理应用
Lifelong是一款围绕家庭单元构建的AI健康管理应用,支持多成员健康档案、可穿戴设备接入和AI伴侣Alo对话式记录。本文深度解析其家庭共享、隐私控制等核心功能及市场前景。