前言

作者: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

注入:

@Autowired
private EmbeddingModel embeddingModel;

生成向量:

EmbeddingResponse response =
embeddingModel.call(
new EmbeddingRequest(
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 * FROM document;

现在:

SELECT *
FROM document
ORDER BY embedding <-> '[0.2,0.3,0.4]'
LIMIT 5;

直接完成:

向量相似度搜索

八、Spring AI接入PGVector

依赖:

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-pgvector-store</artifactId>
</dependency>

配置:

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/ai

注入:

@Autowired
private VectorStore vectorStore;

保存文档:

vectorStore.add(
List.of(
new Document("Redis是缓存数据库")
)
);

查询:

vectorStore.similaritySearch(
"Redis是什么"
);

自动返回:

最相关文档

九、Spring AI RAG实战

完整流程:


存入知识:

vectorStore.add(
List.of(
new Document(
"EduAgentX支持AI问答"
)
)
);

用户提问:

EduAgentX有什么功能?

执行:

List<Document> docs =
vectorStore.similaritySearch(
question
);

得到:

相关知识

组装Prompt:

String prompt =
"""
根据以下知识回答:

%s

问题:

%s
"""
.formatted(
docs,
question
);

调用模型:

chatClient.prompt(prompt)
.call()
.content();

这就是最基础RAG。


十、Tool Calling详解

2025以后最火技术:

Tool Calling

传统AI:

只能聊天。


用户问:

北京天气如何?

AI不知道。


因为:

没有实时数据

于是:

AI调用工具。


流程:

用户提问

↓

LLM判断

↓

调用天气接口

↓

获得结果

↓

返回答案

Spring AI Tool

定义工具:

@Service
public class WeatherTool {

    public String getWeather(
        String city
    ){

        return "北京 25℃";
    }

}

注册:

chatClient.prompt(question)
.tools(new WeatherTool())
.call();

用户:

北京天气

模型自动:

调用工具
获取天气
组织答案

十一、Function Calling

OpenAI提出的概念。

Spring AI已经支持。


定义:

record WeatherRequest(
String city
){}

定义返回:

record WeatherResponse(
String weather
){}

模型自动生成:

{
  "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系统

的核心能力。

Logo

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

更多推荐