当前位置: 首页 > news >正文

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 ↓ Response

Advisor类似:

拦截器

可以实现:

用户上下文 权限控制 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 Elasticsearch

Agent和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系统

的核心能力。

http://www.jsqmd.com/news/983010/

相关文章:

  • 拷贝漫画第三方客户端终极指南:打造纯净高效的Android漫画阅读体验
  • LangChain4j 开发Java Agent智能体- 嵌入模型与向量数据库
  • i.MX 8ULP ADC/DAC/CMP电气特性深度解析与实战设计指南
  • QNAP 存算一体:理顺航空航天精密铸造车间 MES 报工与工艺参数闭环数据总线
  • 告别内存焦虑:用STM32H7的FMC+SDRAM给项目扩容,保姆级CubeMX配置避坑指南
  • 终极开源AI自瞄指南:5分钟完成YOLOv8智能瞄准部署
  • 时序数据库选型:吞吐、压缩与查询延迟的均衡之术
  • 别再为hiprint表格数据绑定头疼了!Vue项目里一个关键配置让你秒通
  • 嵌入式开发实战:深度解析MCU模拟与数字接口电气特性与设计
  • Claude归零层:语义保真度校验环的工程级移除与确定性重构
  • 9种字重完整字体库:Outfit字体解决品牌视觉统一难题的终极指南
  • context - mode:为AI编程减负,降成本98%、提记忆力至3小时,GitHub获超1.5万Star!
  • 嵌入式硬件设计基石:从MCU数据手册电气特性到可靠系统实现
  • Win11下MATLAB 2021b连接USRP X310避坑指南(解决UHD 3.15.0报错)
  • 15天Python入门系列 · 序
  • 收藏!程序员转行AI:大模型应用开发入门指南,轻松拿高薪!
  • 【简单易懂】电脑端 AI 工具 OpenClaw 解压安装与运行指南(包含安装包)
  • 电商团队如何人效提升效率?测评工具给出专业电商剪辑提效方案
  • 040、StructuredOutput 结构化输出:让子代理返回 JSON Schema 验证的数据
  • 如何用AI自瞄技术提升你的FPS游戏体验:基于YOLOv8的智能瞄准解决方案
  • Python开发中的数据处理艺术:从清洗到分析
  • AI Newsletter实战指南:从信息过载到决策燃料
  • AI意识提问:一种诊断大模型认知能力的技术探针
  • 完整指南:Akagi麻将AI辅助工具 - 从新手到高手的智能学习伙伴
  • 这款跨平台音乐神器,无广还能无损下载!界面美观又简洁
  • 云迁移不可避免:从物理瓶颈到业务生存的必然选择
  • 基于NXP KV30F的BLDC电机FOC控制:从硬件设计到算法移植实战
  • 单片机通用定时器编码器接口实验
  • 5分钟掌握OpenStitching:免费全景图生成的完整Python教程
  • 飞思卡尔K50引脚复用全解析:从硬件规划到软件配置实战