SpringAI1-快速⼊⻔
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 1. Spring AI 概述
- 2. 术语介绍
- 2.1 模型
- 2.2 LLM
- 2.3 提⽰词
- 2.4 词元(Tokens)
- 3. Spring AI 快速⼊⻔
- 3.1 环境要求
- 3.2 DeepSeek介绍
- 3.3 申请DeepSeek API Keys
- 3.4 接入deepseek
- 3.4.1 配置API
- 3.4.2 配置接口
- 3.5 接入ChatGpt
- 总结
前言
1. Spring AI 概述

2025年 5⽉20⽇ Spring AI官⽅宣布1.0 GA (General Availability) 版本正式发布, 这是Spring 官⽅推出的⾸个稳定版⼈⼯智能(AI)集成框架. 旨在帮助 Java/Spring 开发者更便捷地在企业级应⽤中集成 AI 能⼒ (如⼤语⾔模型、机器学习、向量数据库、图像⽣成等). 它的发布标志着 Spring ⽣态正式进⼊ AI 时代, 为 Java 开发者提供了标准化的 AI 开发⼯具链, AI 技术正式进⼊ Spring ⽣态的核⼼⼯具链.
Spring AI 是⼀个AI⼯程领域的应⽤框架, 它的⽬标是将 Spring ⽣态系统的设计原则 (如可移植性和模块化设计) 应⽤于 AI 领域, 并促进使⽤POJO作为AI领域应⽤程序的构建块.
Spring AI 提供以下功能:
• ⽀持主要的AI模型提供商, ⽐如 Anthropic、OpenAI、Microsoft、Amazon、Google 和 Ollama,⽀持的模型种类也⾮常多, ⽐如: 聊天模型, 嵌⼊模型, 图像模型, ⾳频模型, 内容审核等.
• 跨 AI 提供商的可移植 API ⽀持. ⽀持聊天 (Chat) , ⽂本到图像 (text-to-image) 和嵌⼊
(Embedding) 模型的统⼀接⼝, 同时提供同步和流式 API 选项. ⽀持访问模型特定功能.
总之, Spring AI 为 ⾮AI专家的开发者也能快速调⽤⼤语⾔模型, 提供了构建 AI 应⽤的基础抽象层, 允许开发⼈员通过极少的代码修改即可轻松替换组件. 简化集成AI功能的应⽤程序开发, 避免不必要的复杂性.
2. 术语介绍
2.1 模型
模型旨在处理和⽣成信息的算法, 通常模仿⼈类的认知功能. 通过从⼤型数据集中学习模式和洞察, 这些模型可以进⾏预测、⽣成⽂本、图像或其他输出, 从⽽增强各个⾏业的各种应⽤. ⽐如ChatGPT、⽂⼼⼀⾔、通义千问等等. 每种模型能⼒不同, 适合的任务也不同.
可以简单理解为模型是⼀个"超级加⼯⼚", 这个⼯⼚是经过特殊训练的, 训练师给它看了海量的例⼦(数据), 并告诉它该怎么做. 通过看这些例⼦, 它⾃⼰摸索出了⼀套规则, 学会了完成某个"特定任务". 模型就是⼀套学到的"规则"或者"模式",它能根据你给的东西, 产⽣你想要的东西
我们给的东西就称之为: 输⼊
模型产出的结果, 就称之为输出
Spring AI 的作⽤ 就是让我们在 Java/Spring 应⽤中, 能⾮常⽅便地:
• 选择不同的 模型
• 构造和发送 输⼊ (Prompt).
• 接收并处理 输出 (AI 的响应)
2.2 LLM
LLM(Large Language Model), ⼤语⾔模型, 也称⼤型语⾔模型, 是⼈⼯智能模型中专⻔处理⽂本的⼀种类型, 属于语⾔模型的范畴. LLM的特点是规模庞⼤, 包含数⼗亿的参数, 在⼤量的⽂本数据上进⾏训练,学习语⾔数据中的复杂模式, 旨在理解和⽣成⼈类语⾔. 可以执⾏⼴泛的任务, 包括⽂本总结、翻译、情感分析等
简单介绍⼏种⽬前主流的⼤语⾔模型 (LLM) .
• GPT-5(OpenAI)
◦ ⽀持 128K⻓上下⽂, 在多轮复杂推理、创意写作中表现突出—》上下文相关承受128K
• DeepSeek R1(深度求索)
◦ 开源, 专注于逻辑推理与数学求解, ⽀持128K⻓上下⽂和多语⾔ (20+语⾔) , 在科技领域表现突出
• Qwen2.5-72B-Instruct (阿⾥巴巴)
◦ 通义千问开源模型家族重要成员, 擅⻓代码⽣成结构化数据 (如JSON) 处理⻆⾊扮演对话等, 尤其适合企业级复杂任务, ⽀持包括中⽂英⽂法语等29种语⾔
• Gemini 2.5 Pro (Google)
◦ 多模态融合标杆, ⽀持图像/代码/⽂本混合输⼊, 适合跨模态任务 (如图⽂⽣成、技术⽂档解析)
多模态意思就是可以处理语言,图像,代码等等
2.3 提⽰词
提⽰词是⽤⼾或系统提供给⼤语⾔模型 (LLM) 的指令或⽂本, ⽤于引导模型⽣成特定输出. 可以理解为模型的输⼊, ⽆论是⼀个单词、⼀个问题、⼀段描述, 还是结构化指令, 都可视为提⽰词.
2.4 词元(Tokens)
词元是⼤语⾔模型 (LLM) 处理⽂本时的最⼩语义单位. ⽤于将⽂本拆解为模型可理解的离散单元
词元通过分词器将⽂本拆分⽽来, 不同模型的分词规则不同, 同⼀个词在不同模型中可能被拆分成不同词元
模型的上下⽂窗⼝ (如128K) 实际是词元数量限制, API收费通常按词元数计费(词元=⾦钱), 词元数越多, 计算耗时和内存占⽤越⾼. 所以在使⽤时, 应尽量避免冗余词(如请, 谢谢)
3. Spring AI 快速⼊⻔
3.1 环境要求
JDK
◦ 最低要求:JDK 17+ (Spring Boot 3.x 强制要求)
◦ 推荐版本:
▪ JDK 21 (2023年 LTS 版本, ⽀持虚拟线程/分代 ZGC, 性能提升显著)
▪ JDK 17 (旧项⽬过渡⽅案)
Spring Boot
◦ 最低要求:Spring Boot 3.2+ (Spring AI 1.0.0 起强制依赖)
◦ 推荐版本:
▪ Spring Boot 3.4.x (最新稳定版, 优化企业级特性)
▪ Spring Boot 3.3.x (部分旧项⽬兼容⽅案)
3.2 DeepSeek介绍
⾃2023年成⽴以来, 凭借前沿技术架构与开源策略迅速崛起, 成为全球AI领域的重要⼒量.
DeepSeek-R 系列 (如 R1) : 专注复杂推理的模型, 数学、代码能⼒突出, ⽀持深度思考模式 (⾼智能推理状态)
DeepSeek-R1于2025年1⽉发布, 并同步开源模型权重, 性能逼近OpenAI o1, 推理成本仅为⼏⼗分之⼀, 登顶全球多国应⽤商店下载榜 , 在美区下载榜上超越了ChatGPT.
• DeepSeek-V 系列(如V2, V3): 通⽤语⾔模型, ⽀持⽂本⽣成、多轮对话等任务, 性能对标 GPT-4Turbo4.
DeepSeek V2模型因在中⽂综合能⼒评测中的出⾊表现, 且以极低的推理成本引发⾏业关注, 被称为"AI界的拼多多".
• DeepSeek-Coder:专注于代码⽣成与补全, ⽀持多语⾔编程 (Python, Java等) , 强化学习优化, 训练成本仅为同类模型的 1/30.
DeepSeek的特点:
• 完全开源:模型代码、权重公开, 兼容 OpenAI API 接⼝
• 极致性价⽐:推理成本仅为同类模型的 1/7 (如对⽐ Llama3-70B) , 训练成本低⾄ 560 万美元 (仅为⾏业平均的 1/3) .
DeepSeek 作为国产⼤模型的标杆产品, 其⾼性能与易⽤性吸引⼤量企业进⾏技术整合(涉及领域覆盖通信, 能源, ⾦融, 汽⻋, 科技等). 我们可以通过 Spring AI 框架快速实现 DeepSeek 的能⼒接⼊, 显著降低AI 集成⻔槛.
3.3 申请DeepSeek API Keys
deepseek官网

点击右上角API开放平台
deepseeek是免费使用的,但是要用开放平台的话–》需要充值

充值之前要实名制,然后充值一块钱
学习使用的话,一元就够了
然后是申请APIKEYS

然后记得在创建的时候,保存APIkeys
然后左边还有接口文档可以看


3.4 接入deepseek

创建一个空父项目
然后是完善依赖
<packaging>pom</packaging><!-- 完善依赖 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.5.3</version><relativePath/> <!-- lookup parent from repository --></parent>
然后是创建子模块-spring-ai-demo
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
添加spring依赖
@SpringBootApplication
public class SpringAiApplication {public static void main(String[] args) {SpringApplication.run(SpringAiApplication.class,args);}
}
然后是启动类
spring:application:name: spring-ai-demo
然后是配置application.yml
springai快速上手
springai已经添加到maven仓库—》可以直接添加依赖
<dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>1.0.0-SNAPSHOT</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>
使用这个就和springboot是一样的,springboot中也有一个bom,帮我们弄好版本信息管理
dependencyManagement这个spring-ai-bom<也是管理好了spring-ai的版本信息
从 1.0.0-M6 开始,Maven Central 中已提供发布版本。无需更改构建文件。
所以版本应该使用1.0.0-M6
<dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>1.0.0-M6</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

我们调用deepseek的接口,就要这样,很麻烦,但是springai给我们分装好了
Spring AI ⽣态专⻔为OpenAI及兼容API服务(如DeepSeek)设计了Starter spring-ai-openaispring-boot-starter , ⽤于快速集成⼤语⾔模型能⼒到 Spring Boot 应⽤中.
核⼼价值包括:
• 简化配置:⾃动封装 OpenAI API 的请求/响应等逻辑
• 统⼀接⼝:提供 ChatClient 等标准化接⼝, ⽀持⽆缝切换不同模型提供商
• Spring ⽣态集成:与 Spring Boot 的⾃动配置、依赖注⼊等特性深度整合
<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-openai-spring-boot-starter</artifactId><version>1.0.0-M6</version></dependency>
添加依赖,版本可以不要
因为dependencyManagement引入了springai的bom的版本管理
3.4.1 配置API
spring:ai:openai:api-key:base-url: https://api.deepseek.comchat:options:model: deepseek-chattemperature: 0.7

baseurl其实就是在这里获取的

然后model其实出自这里
springai配置项参考

temperature配置出自这里,可以看出temperature值越高,每次输出的随机性就越高–——》每次就很多不一样
3.4.2 配置接口

看这个,我们的配置还差messages
@RestController
@RequestMapping("/ds")
public class DeepSeekController {@Autowiredprivate OpenAiChatModel openAiChatModel;@RequestMapping("/chat")public String chat(String message){return openAiChatModel.call(message);}
}
OpenAiChatModel 就来自于我们配置的springai-starter
然后就可以运行了


3.5 接入ChatGpt
这一部分不重要,虽然我写了相应博客,但是发布不了
