前言

作者:XXX
标签:Spring AI、Spring Boot、OpenAI、DeepSeek、ChatGPT、RAG、向量数据库、Java AI开发、LLM、大模型应用
适合人群:Java开发工程师、后端开发工程师、架构师、AI应用开发者

2025年之后,Java开发领域最火的技术栈已经不再是:

  • Spring Cloud
  • Dubbo
  • Redis

而是:

Spring AI + 大模型

随着:

  • ChatGPT
  • DeepSeek
  • Claude
  • Gemini
  • Qwen(通义千问)

等大模型能力不断增强,越来越多企业开始构建自己的:

AI客服
AI教育系统
AI知识库
AI办公助手
AI代码助手
AI销售顾问
AI数据分析平台

然而对于Java开发者来说,直接调用各家模型API存在很多问题:

接口不统一
切换模型成本高
Prompt管理困难
向量检索复杂
Agent开发繁琐

于是Spring官方推出了:

Spring AI

它的目标非常简单:

像操作数据库一样操作大模型


一、什么是Spring AI?

Spring AI是Spring生态推出的AI开发框架。

官网定义:

An Application Framework for AI Engineering

翻译:

AI工程开发框架

它解决的问题:

以前调用OpenAI:

HttpClient
Json
Token
Prompt
API封装

开发体验非常差。

而Spring AI:

chatClient.prompt("你好")
          .call()
          .content();

直接完成调用。


二、Spring AI架构设计

Spring AI整体架构:

                 Spring AI

                       │

 ┌─────────────┬─────────────┬─────────────┐

 OpenAI      DeepSeek      Claude

 └─────────────┴─────────────┴─────────────┘

                       │

                  ChatClient

                       │

                 Java业务代码

核心思想:

统一抽象
统一接口
统一开发模式

类似:

JdbcTemplate

统一数据库访问。


三、为什么Spring AI会成为Java开发主流?

很多人觉得:

直接调HTTP不就行了?

事实上企业开发完全不是这样。


问题1:模型切换困难

例如:

今天使用:

GPT-4o

明天改:

DeepSeek-V3

后天又切换:

Claude

如果全部手写HTTP:

工作量巨大

Spring AI:

修改配置即可。

spring:
  ai:
    openai:
      api-key: xxx

换模型:

spring:
  ai:
    deepseek:
      api-key: xxx

业务代码完全不用修改。


问题2:Prompt管理混乱

很多项目:

String prompt =
"你是一个老师..." +
"请回答..." +
"要求...";

代码后期极难维护。


Spring AI支持:

PromptTemplate

模板化管理。


四、Spring AI核心组件详解

Spring AI核心组件主要有:

ChatClient
ChatModel
PromptTemplate
EmbeddingModel
VectorStore
Advisor
Tool Calling
Agent

面试必问。


五、ChatClient详解

Spring AI推荐使用:

ChatClient

调用模型。


最简单调用

String result =
chatClient.prompt("你好")
          .call()
          .content();

返回:

你好,请问有什么可以帮助您?

实际上内部执行:

Prompt
 ↓
OpenAI
 ↓
返回结果

带系统角色

例如教育系统:

String result =
chatClient.prompt()
          .system("你是一名Java高级讲师")
          .user("什么是IOC")
          .call()
          .content();

效果:

模型会始终以老师身份回答

六、Prompt工程详解

Prompt是AI开发核心。

很多项目失败:

不是模型不行

而是Prompt太差。


普通Prompt

解释Redis

返回:

很普通

优化Prompt

你是一位拥有10年经验的Java架构师。

请从以下几个方面解释Redis:

1. 基本概念
2. 数据结构
3. 缓存架构
4. 面试重点

要求:
- 通俗易懂
- 给出代码示例
- 适合中级开发者

输出质量提升数倍。


七、PromptTemplate

企业项目中:

不要拼接字符串。


错误写法:

String prompt =
"请分析用户:" + name;

正确写法:

PromptTemplate template =
new PromptTemplate("""
请分析用户信息:

姓名:{name}

输出建议
""");

传参:

template.create(
Map.of("name","张三")
);

优势:

代码整洁
易维护
可复用

八、结构化输出

企业开发最常见需求:

AI返回JSON。


例如:

分析简历。


错误:

返回自然语言

程序难处理。


Spring AI支持:

record Resume(
String name,
Integer age,
String skill
){}

直接映射:

Resume resume =
chatClient.prompt(prompt)
          .call()
          .entity(Resume.class);

返回:

{
  "name":"张三",
  "age":24,
  "skill":"Java"
}

开发效率提升巨大。


九、Spring AI接入DeepSeek

目前国内最热门模型:

DeepSeek

配置:

spring:
  ai:
    openai:
      base-url: https://api.deepseek.com
      api-key: sk-xxxx

注意:

DeepSeek兼容:

OpenAI API规范

因此:

ChatClient

代码无需修改。


十、企业项目实战:AI教育助手

假设开发:

EduAgentX

智能教育平台。


用户提问:

什么是Redis缓存击穿?

后端:

@RestController
public class AiController {

    @Autowired
    private ChatClient chatClient;

    @GetMapping("/chat")
    public String chat(String msg){

        return chatClient
                .prompt(msg)
                .call()
                .content();
    }
}

效果:

AI实时回答

十一、Spring AI最佳实践

不要直接暴露Prompt

推荐:

Prompt模板中心

统一管理。


Token控制

避免:

一次输入10万字

导致:

费用暴涨

响应缓存

热门问题:

Redis是什么
Java是什么

缓存到:

Redis

降低模型调用成本。


限流

推荐:

Redis + Token Bucket

防止接口被刷。


总结

Spring AI的出现,意味着:

Java正式进入AI原生开发时代

掌握Spring AI,你将具备开发:

  • AI客服
  • AI知识库
  • AI教育系统
  • AI代码助手
  • AI办公平台

的能力。

下一篇《Spring AI 实战指南(二)》将深入讲解:

RAG知识库
Embedding
向量数据库
Tool Calling
Function Calling
Agent开发
MCP协议
企业级AI架构设计

这些内容才是真正的企业级AI开发核心。


(未完待续,第二篇将重点讲解 Spring AI + RAG + Agent 企业实战) 🚀

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐