Spring AI 实战指南(二):RAG、向量数据库、Tool Calling、Agent 企业级开发实战
前言
作者:XXX
标签:Spring AI、RAG、Agent、MCP、向量数据库、Milvus、PGVector、DeepSeek、OpenAI、AI知识库
阅读时间:30分钟
难度:⭐⭐⭐⭐⭐
上一篇我们讲了:
- Spring AI架构
- ChatClient
- Prompt工程
- PromptTemplate
- 结构化输出
- DeepSeek接入
但实际上在企业中,仅仅会调用大模型是远远不够的。
因为你会发现一个问题:
用户问:
我们公司的请假制度是什么?AI回答:
抱歉,我不知道。用户问:
EduAgentX系统数据库设计是什么?AI回答:
我无法获取你的项目数据。为什么?
因为大模型虽然聪明,但它并不知道你的私有数据。
例如:
- 公司知识库
- 项目文档
- ERP数据
- CRM数据
- OA数据
- 数据库信息
这些内容根本不在模型训练数据中。
于是:
RAG(Retrieval Augmented Generation)
诞生了。
一、什么是RAG?
RAG全称:
Retrieval Augmented Generation翻译:
检索增强生成传统大模型:
用户提问 ↓ LLM ↓ 回答RAG模式:
用户提问 ↓ 知识库检索 ↓ 相关内容 ↓ LLM ↓ 回答例如:
用户问:
EduAgentX有哪些功能?系统流程:
问题 ↓ 向量搜索 ↓ 找到项目文档 ↓ 拼接Prompt ↓ 发送给DeepSeek ↓ 生成答案此时AI回答的就不是:
互联网知识而是:
你的企业知识二、为什么RAG成为企业AI标配?
很多人以为:
直接微调模型不就行了?实际上大部分企业不会这样做。
原因一:成本太高
微调一个模型:
GPU 训练 数据清洗 模型维护成本巨大。
原因二:知识更新频繁
例如:
员工手册 产品文档 接口文档每天都在变化。
如果每次更新:
重新训练模型根本不现实。
所以:
知识放数据库 模型负责理解才是企业主流方案。
三、RAG核心流程解析
一个标准RAG系统:
文档 ↓ 切片 ↓ Embedding ↓ 向量数据库 ↓ 用户提问 ↓ Embedding ↓ 相似度搜索 ↓ TopK内容 ↓ Prompt组装 ↓ 大模型回答这张图面试必考。
很多公司:
AI工程师 Java AI开发 Agent工程师都会问。
四、什么是Embedding?
很多新人最容易卡在这里。
假设有两句话:
Java是什么?和:
Java语言介绍对于人类:
意思相近对于计算机:
完全不同Embedding的作用:
把文字变成向量例如:
Java是什么 ↓ [0.12,0.55,0.21,0.88...]另一句话:
Java语言介绍 ↓ [0.11,0.58,0.20,0.86...]因为向量接近:
余弦相似度高所以系统认为:
内容相关五、Spring AI中的Embedding
Spring AI已经封装好。
配置:
spring:ai:openai:api-key:sk-xxx注入:
@AutowiredprivateEmbeddingModelembeddingModel;生成向量:
EmbeddingResponseresponse=embeddingModel.call(newEmbeddingRequest(List.of("什么是Redis"),EmbeddingOptionsBuilder.builder().build()));返回:
[0.12,0.34,0.56...]六、向量数据库详解
生成向量后存哪里?
普通数据库:
MySQL不适合。
需要:
Vector Database
向量数据库。
主流方案:
| 数据库 | 推荐指数 |
|---|---|
| Milvus | ⭐⭐⭐⭐⭐ |
| PGVector | ⭐⭐⭐⭐⭐ |
| Chroma | ⭐⭐⭐⭐ |
| Weaviate | ⭐⭐⭐⭐ |
| Elasticsearch | ⭐⭐⭐⭐ |
目前企业最常用:
Milvus PGVector七、为什么推荐PGVector?
对于Java开发来说:
PGVector学习成本最低。
因为:
PostgreSQL + Vector = PGVector原来:
SELECT*FROMdocument;现在:
SELECT*FROMdocumentORDERBYembedding<->'[0.2,0.3,0.4]'LIMIT5;直接完成:
向量相似度搜索八、Spring AI接入PGVector
依赖:
<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-pgvector-store</artifactId></dependency>配置:
spring:datasource:url:jdbc:postgresql://localhost:5432/ai注入:
@AutowiredprivateVectorStorevectorStore;保存文档:
vectorStore.add(List.of(newDocument("Redis是缓存数据库")));查询:
vectorStore.similaritySearch("Redis是什么");自动返回:
最相关文档九、Spring AI RAG实战
完整流程:
存入知识:
vectorStore.add(List.of(newDocument("EduAgentX支持AI问答")));用户提问:
EduAgentX有什么功能?执行:
List<Document>docs=vectorStore.similaritySearch(question);得到:
相关知识组装Prompt:
Stringprompt=""" 根据以下知识回答: %s 问题: %s """.formatted(docs,question);调用模型:
chatClient.prompt(prompt).call().content();这就是最基础RAG。
十、Tool Calling详解
2025以后最火技术:
Tool Calling传统AI:
只能聊天。
用户问:
北京天气如何?AI不知道。
因为:
没有实时数据于是:
AI调用工具。
流程:
用户提问 ↓ LLM判断 ↓ 调用天气接口 ↓ 获得结果 ↓ 返回答案Spring AI Tool
定义工具:
@ServicepublicclassWeatherTool{publicStringgetWeather(Stringcity){return"北京 25℃";}}注册:
chatClient.prompt(question).tools(newWeatherTool()).call();用户:
北京天气模型自动:
调用工具 获取天气 组织答案十一、Function Calling
OpenAI提出的概念。
Spring AI已经支持。
定义:
recordWeatherRequest(Stringcity){}定义返回:
recordWeatherResponse(Stringweather){}模型自动生成:
{"city":"北京"}后端执行:
getWeather("北京")再返回给模型。
十二、什么是Agent?
目前AI领域最火:
Agent很多人理解错了。
Agent不是模型。
Agent:
大模型 + 记忆 + 工具 + 规划能力传统模式:
问 答 结束Agent:
问 ↓ 分析任务 ↓ 调用工具 ↓ 执行任务 ↓ 总结结果例如:
用户:
帮我分析最近销售情况Agent:
查询数据库 ↓ 统计订单 ↓ 生成图表 ↓ 总结结果 ↓ 输出报告十三、Spring AI Agent开发
Spring AI 1.x开始:
重点支持Agent能力。
典型架构:
ChatClient ↓ Advisor ↓ Memory ↓ Tool ↓ LLM ↓ ResponseAdvisor类似:
拦截器可以实现:
用户上下文 权限控制 Prompt增强 日志记录十四、企业级AI系统架构
生产环境推荐:
Vue3 ↓ Gateway ↓ Spring Boot ↓ Spring AI ↓ Redis ↓ PGVector ↓ DeepSeek/OpenAI ↓ MySQL职责:
MySQL:
业务数据Redis:
会话缓存 Token缓存 Prompt缓存PGVector:
知识库 向量检索Spring AI:
统一AI编排十五、EduAgentX项目升级方案
结合你之前做的教育平台项目。
第一阶段:
AI聊天助手第二阶段:
课程知识库学生提问:
什么是SpringMVC?系统从课程资料检索。
第三阶段:
AI学习规划根据成绩生成:
学习路线第四阶段:
Agent学习导师自动:
分析成绩 ↓ 发现弱项 ↓ 推荐课程 ↓ 生成学习计划十六、面试高频题(AI方向)
什么是RAG?
回答:
通过向量检索获取外部知识, 再与用户问题一起发送给LLM, 从而提升回答准确率。为什么不用微调?
回答:
成本高 更新慢 维护复杂Embedding作用是什么?
回答:
把文本转换为向量, 便于语义相似度检索。向量数据库有哪些?
回答:
Milvus PGVector Chroma Weaviate ElasticsearchAgent和RAG区别?
回答:
RAG解决知识问题 Agent解决执行问题总结
如果说 Spring Boot 是过去十年的 Java 开发标准,那么未来五年的 Java AI 开发标准,很可能就是:
Spring AI真正企业落地的技术路线通常不是:
Spring AI + ChatGPT而是:
Spring AI + RAG + PGVector + Redis + Tool Calling + Agent + DeepSeek掌握这套技术栈后,你已经具备开发企业级:
- AI知识库
- AI客服
- AI教育平台
- AI办公助手
- AI数据分析平台
- AI Agent系统
的核心能力。
