系列导语 本文是【大模型API中转站】系列篇。本系列致力于用最低的成本、最清晰的方法,帮你打通多模型 API 的任督二脉。建议先收藏,随用随查。 这一期换个视角:调用方不再是 Python,而是 Java。 Spring 官方亲儿子 Spring AI 已经 1.0 GA,把大模型能力塞进了 Spring 生态。本期一次性讲透:Spring AI 到底解决什么、七大核心概念怎么理解、国内开发者怎么用中转站把它跑起来。
先给最忙的人一句话结论:AI 应用开发不是 Python 的专利。 Spring AI 用 Spring 开发者最熟的那套(依赖注入、Starter、自动配置)封装了 Model / Prompt / Embedding / RAG / Function Calling 全链路,你会写 Spring Boot,就会写 AI 应用。 唯一的坑在国内:它默认连 OpenAI 官方端点,网络和计费都别扭——往下看第 5 节,改一个 base-url 指向 4SAPI,OpenAI、Claude、国产开源全用同一套 Spring AI 代码调。
1. 开篇:AI 开发,凭什么只能是 Python?
提到大模型应用,绝大多数人第一反应是 Python + LangChain。于是一个尴尬的现实摆在无数 Java 团队面前:核心业务系统是 Spring 写的、跑了好几年、稳如老狗,可一沾 AI 就得另起一个 Python 服务,两套技术栈、两套运维、两套部署。
Spring AI 就是来终结这件事的。它是 Spring 官方推出的 AI 集成框架,核心目标只有一句话:
把企业的数据和 API,跟 AI 模型连起来——用 Spring 开发者本来就会的方式。
它不重新发明轮子,而是把 AI 能力做成你熟悉的 Starter + 自动配置 + XxxClient。换模型?改配置。换提供商?换 Starter。这就是"Java 智能新利器"的真正含义——不是教 Java 干新活,是让 AI 这件新活落进 Java 的老框架里。
2. 核心速查:Spring AI 七大概念,一张表看懂
这是本期的核心表,把官方文档里最该懂的七个概念,用人话 + Java 视角讲清(适用 Spring AI 1.0 GA):
| 概念 | 一句话本质 | Java 开发者要记住的点 |
|---|---|---|
| Models 模型 | 从海量数据学规律、做预测的算法 | Spring AI 用统一接口屏蔽了底层模型差异,换模型不改业务代码 |
| Prompts 提示 | 引导模型输出的语言输入 | 多段文本 + 角色(system 定上下文 / user 是用户输入);用 PromptTemplate 做模板化 |
| Embeddings 嵌入 | 把文本/图/视频转成浮点数向量 | 向量长度=维度;算向量间距离=判相似度,RAG 的地基 |
| Tokens 令牌 | 模型计费和处理的最小单位 | 输入切成 token、输出再拼回单词;计费按 token,成本账全看它 |
| Structured Output 结构化输出 | 模型默认吐 String,哪怕你要 JSON | 1.0 起可直接用 entity(Xxx.class) 把输出自动映射成 Java 对象,不用手撸解析 |
| Function Calling 函数调用 | 让模型调你的本地方法/外部 API | 把数据和能力"喂"给模型的三板斧之一,Spring AI 用 @Bean 注册工具极其顺手 |
| RAG 检索增强生成 | 把相关资料塞进提示再回答 | 类 ETL 流程:读非结构化文档 → 转换 → 写向量库 → 检索增强 |
几个最容易被坑/被忽略的点:
- "要 AI 输出 JSON" ≠ "你拿到了 JSON"。模型本质只会吐字符串,你说"请返回 JSON",它给的也只是"长得像 JSON 的字符串"。Spring AI 1.0 的 Structured Output 把这步包了,
call().entity(Order.class)直接给你 Java 对象——这是它比裸调 API 最香的地方之一。 - 给模型"补数据"有三条路,别只会一条。微调(Fine Tuning,改权重、最烧钱)、提示填充(Prompt Stuffing,把数据塞进 prompt)、函数调用(Function Calling,连外部系统)。绝大多数业务场景,Prompt Stuffing + RAG + Function Calling 就够,不用动微调。
- RAG 不是玄学,是 ETL。读文档 → 切块/向量化 → 写向量库 → 查询时检索相关块塞进 prompt。Spring AI 把这套做成了
DocumentReader/EmbeddingModel/VectorStore标准件,会写批处理就会写 RAG。
3. 选型对比:Spring AI vs 裸调 vs LangChain4j
Java 接 AI 不止 Spring AI 一条路。把三种主流姿势摆一起(标场景胜负):
| 维度 | 裸调 HTTP/SDK | Spring AI | LangChain4j | 赢家 |
|---|---|---|---|---|
| 上手成本 | 自己拼 JSON、管重试 | Starter 即插即用 | 概念偏多 | 🟢 Spring AI |
| 与 Spring 生态融合 | 手动接 | 原生 DI / Boot / Actuator | 一般 | 🟢 Spring AI |
| 多模型切换 | 每家重写一遍 | 统一接口,换 Starter | 支持 | 🟡 平 |
| RAG / 向量库 | 全自己搭 | 内置标准件 | 内置丰富 | 🔵 LangChain4j 略多 |
| 结构化输出 | 手撸解析 | entity() 自动映射 | 支持 | 🟢 Spring AI |
| 官方背书 / 长期维护 | —— | Spring 团队亲儿子 | 社区 | 🟢 Spring AI |
读法(看你团队落哪行):
- 已经在用 Spring Boot / Spring Cloud → 闭眼选 Spring AI,融合度和维护性吊打,几乎零学习曲线。
- 要非常激进地玩 Agent / 复杂链路 / 各种花式向量库 → 可以看看 LangChain4j,组件更碎更全。
- 就调一两次、不想引框架 → 裸调 + 中转站也行,但重试/计费/多模型切换都得自己扛。
4. 成本:Spring AI 不要钱,要钱的是它背后那个模型
很多人忽略一件事:Spring AI 框架本身免费开源(Apache 2.0),真正花钱的是它替你调的那个大模型。 所以成本账=token 账,和你选哪个模型强相关。把主流模型的按 token 价摆出来(每百万 Token,2026 年 6 月):
| 模型 | 输入 | 输出 | 在 Spring AI 里怎么接 |
|---|---|---|---|
| GPT-5.5 | $5 | $30 | spring-ai-openai-spring-boot-starter |
| Claude Opus 4.8 | $5 | $25 | OpenAI 兼容端点直接走 |
| MiniMax M3 | $0.30(促销) | $1.20(促销) | 同上,改 model 即可 |
| GLM-5.1 | ~$0.80 | ~$2.40 | 同上 |
| Kimi K2.7-Code | $0.95 | $4.00 | 同上 |
关键洞察:因为 Spring AI 用统一接口屏蔽了模型差异,你完全可以"框架不变、模型随便换"。 开发期用便宜的国产开源跑通逻辑,上线前压测决定哪个模型性价比最高——全程只改一个 model 配置项。
💡 算笔账:同一个 RAG 问答服务,用 GPT-5.5 和用 MiniMax M3,代码一行不改,成本差 16 倍。Spring AI 的统一抽象让"按场景选模型"从"重写工程"变成"改配置"。这就是抽象层的价值。
5. 实战:Spring AI + 中转站,国内 5 分钟跑通
Spring AI 默认指向 OpenAI 官方端点,国内会遇到网络不通 + 计费发票麻烦两座大山。解法和这个系列一贯的主张一样:把 base-url 指向中转站,一个 Key、一个端点,OpenAI 格式全兼容。 下面以 4SAPI 为例。
5.1 引依赖(Maven)
5.2 配置(核心就改两行:base-url + key)
5.3 一个 Controller 跑通对话
5.4 进阶:结构化输出,直接拿 Java 对象
这是 Spring AI 比裸调最爽的地方——模型吐的字符串自动映射成你的 Java 类,不用手写 JSON 解析:
5.5 按场景路由模型(框架不变,改配置)
承接第 3、4 节的选型表,生产里成熟做法是按任务路由模型。Spring AI 里用 mutate() 临时覆盖 options,一个方法搞定:
中转站对 Java 团队最实在的价值就在这:模型选型、灰度对比、降级容灾,全收敛到一个 base-url + 一个 switch,闭源开源混着路由也是改一行的事。
6. 选型决策表 + 合规提示
该怎么用?
| 你的场景 | 推荐姿势 | 理由 |
|---|---|---|
| 已有 Spring Boot 项目要加 AI | Spring AI + 中转站 | 零学习曲线,DI/Starter 全复用 |
| 要做企业知识库问答 | Spring AI RAG 三件套 | DocumentReader → VectorStore 标准流程 |
| 要 AI 调用业务方法/外部接口 | Function Calling | @Bean 注册工具,模型自动调 |
| 要 AI 返回可直接用的结构化数据 | call().entity(X.class) | 自动映射,告别手写解析 |
| 国内网络/计费别扭 | base-url 指向中转站 | 一个 Key,OpenAI 格式全兼容 |
风险与合规提示
- 框架免费,模型要钱:别把 Spring AI 当成本中心,真正的账单是背后的 token,选能给明细的中转站。
- 结构化输出不是 100% 保证:
entity()偶尔也会因模型抽风映射失败,生产里务必加兜底和重试。 - 别大额预充:新平台小额试用,看稳定性和发票再加码。
- 合规红线:本文是为解决国内网络与成本问题的正常技术接入,不鼓励、不提供任何恶意绕过官方限制或违规用途的方案。
7. 总结与系列导航
一句话总结:
AI 应用开发不是 Python 的专利。 Spring AI 把 Model / Prompt / Embedding / Tokens / 结构化输出 / Function Calling / RAG 七大能力,做成了 Spring 开发者最熟的 Starter + 自动配置——你会写 Spring Boot,就会写 AI 应用。 国内落地唯一的坎是网络和计费,把
base-url指向中转站即可一键抹平,框架不变、模型随便换。
对 Java 团队来说,通过 4SAPI 这类中转站接入 Spring AI,等于用一套 Spring 代码 + 一个 Key,握住 OpenAI / Claude / 国产开源全家桶——改个 model 配置就横跳,既不用学 Python 那套,也省掉自建模型服务的天价账单。这笔账,Java 团队怎么算都划算。




