第一章:先唠明白,Spring AI 到底是个啥?
第一章先唠明白Spring AI 到底是个啥1.1 不是又一个 AI 框架是 Spring 生态的 AI 接入层很多同学第一次听到Spring AI这个名字脑子里冒出来的第一个念头是又来一个要学的东西是不是跟 LangChain 差不多我带你一句话搞清楚它的定位——Spring AI 不是要你放弃 LangChain 或者重新学一套 AI 理念它是把调用大模型这件事用 Spring 生态里你熟悉的方式封装了一层。说白了你写 Spring Boot 项目想接大模型ChatGPT、通义千问、DeepSeek……以前你怎么办自己写 HTTP 请求拼 JSON处理流式响应适配各家不同的 API 格式写一堆工具类。Spring AI 就是帮你把这一坨脏活干了你只管写业务逻辑跟 AI 交互的部分跟调 Spring 的JdbcTemplate一样自然。它的核心思路是大一统接口// 不管底层是 OpenAI 还是千问还是 DeepSeek// 你写的代码是这样的换模型只改配置不动代码ChatClientclientchatClientBuilder.build();Stringanswerclient.prompt().user(帮我写一段冒泡排序的代码).call().content();如果明天你觉得 OpenAI 太贵要切到 DeepSeek改一行配置完事业务代码零改动——这就是 Spring AI 最大价值。1.2 和 LangChain4j、LangChain(Python) 掰扯清楚这是被问最多的问题我用一张表把关键差异列清楚维度Spring AILangChain4jLangChainPython母体生态Spring Boot / Spring CloudJava 生态非 Spring 专属Python 生态上手门槛会 Spring Boot 就能用零额外学习成本需要学 LangChain 那一套抽象概念需要学 LangChain 概念 PythonAI 能力完备度Chat、Embedding、RAG、Function Calling、多模态Chat、Embedding、RAG、Agent、Tools最全社区最活跃生产环境适配天然集成 Spring 全家桶AOP、事务、监控、配置中心需要自己集成 Spring 组件非 Java 生态文档与社区官方文档稳定但案例偏少社区增长中文档一般Java 大模型场景资料少资料最多但都是 Python适合谁Spring 技术栈团队不想折腾框架Java 团队非 Spring 项目如 QuarkusPython 团队、算法团队怎么选只给你一个决策标准你团队的主力后端是 Java/Spring 技术栈 → 无脑 Spring AI。别去看 LangChain4j 了Spring AI 在 Spring 生态里的集成体验是降维打击级别的——事务管理、配置中心、AOP 切片这些你不需要额外适配。你是 Python 技术栈 → 用 LangChain。这没什么好纠结的。你是 Java 但不是 Spring比如 Quarkus、纯 Java→ 看 LangChain4j。不过说实话Java 后端有多少不用 Spring 的所以这个选项其实很少人走。一个真实的选择经历我们团队之前做一个知识库问答项目一开始有人提议用 Python LangChain理由是LangChain 资料多。我否决了原因很简单团队全员 Java引入 Python 服务意味着要多维护一个技术栈知识库数据在现有的 Spring 服务里跨语言调用增加网络开销和维护成本Spring AI 虽然是新项目但它做的事情本质上是 HTTP 调用 向量检索不复杂没必要引入新语言最后全链路用 Spring AI 做的研发效率远高于预期。当然Spring AI 当时有些功能不成熟比如 Agent 编排我们这部分自己写了一点胶水代码。这是后话后面章节会细说。1.3 一张图看懂 Spring AI 全家桶Spring AI 不是一个大而全的平台它是一个模块化的工具箱。你跟 AI 交互会遇到的所有环节它都提供对应的模块。用大白话翻译一下每个模块是干嘛的┌───────────────────────────────────────────────────────────────────────┐ │ 你的 Spring Boot 业务代码 │ └───────────────────────────────────────────────────────────────────────┘ │ ┌─────────────────────────┼─────────────────────────┐ │ │ │ ▼ ▼ ▼ ┌──────────┐ ┌──────────────┐ ┌──────────────┐ │ Chat │ │ Embedding │ │ 多模态 │ │ 聊天 │ │ 文本→向量 │ │ 图片/语音 │ └──────────┘ └──────────────┘ └──────────────┘ │ ▼ ┌──────────────────────────────────────────────────────────────────┐ │ Vector Store向量数据库 │ │ PgVector │ Milvus │ Redis │ Elasticsearch │ Chroma │ └──────────────────────────────────────────────────────────────────┘ │ ┌─────────────────────────┼─────────────────────────┐ │ │ │ ▼ ▼ ▼ ┌──────────┐ ┌──────────────┐ ┌──────────────┐ │ RAG │ │ Agent │ │ Memory │ │ 检索增强 │ │ 智能体 │ │ 对话记忆 │ └──────────┘ └──────────────┘ └──────────────┘逐一说一下这些模块是干啥的用最土的话模块大白话解释你什么时候用到它Chat跟大模型对话问问题它回答天天用最基础的能力Embedding把一段文字变成一串数字向量用于找相似内容做知识库、做搜索、做推荐时Vector Store存这些向量数字的地方能快速找出最相似的几条做 RAG 必须用RAG先从你的知识库里搜相关内容塞给 AI让它基于你的资料回答内部文档问答、客服机器人Function Calling让 AI 能指挥你的系统做事查数据库、调接口、发邮件你想让 AI 不只是聊天还能办事AgentFunction Calling 的升级版AI 自行决定先做什么、后做什么复杂任务自动编排多模态除了文字还能看图、听语音发票识别、图片描述Memory让 AI 记住你们刚才聊过什么多轮对话重要提示这些模块不是都要学。你 80% 的场景只需要 Chat RAG Function Calling 三个模块。别被全家桶唬住。1.4 版本现状能不能上生产这是每个想引入 Spring AI 的人最关心的问题。我直接说现状截至 2026 年 8 月版本号Spring AI 已经发布1.0 正式版。这意味着核心 API 已经稳定不会再有破坏性变更了。之前那些年追 SNAPSHOT 版的痛苦终于结束了。各模块成熟度模块成熟度说明Chat / Streaming✅ 生产可用核心功能最稳Embedding✅ 生产可用没什么幺蛾子PgVector 集成✅ 生产可用Spring 官方主推维护积极Milvus 集成✅ 生产可用社区维护稳定Function Calling✅ 生产可用经历了多轮迭代API 已收敛RAGETL Pipeline✅ 生产可用文档处理链路稳定Agent 编排⚠️ 谨慎目前功能相对基础复杂编排建议自己控制多模态✅ 生产可用接口稳定注意各模型支持差异对话记忆✅ 生产可用简单的上下文窗口没问题我的建议如果你的需求是 Chat RAG Function Calling完全可以上生产我们已经跑了几个月了没啥坑。如果你要复杂的 Agent 多步推理、自动规划Agent 模块能用但不够灵活建议主要逻辑自己写状态机控制用 Spring AI 做模型调用那层。第一章小结三句话总结Spring AI 是 Spring 生态的 AI 接入层把你本来就要写的 HTTP 请求封装成了 Spring 风格接口切换模型只改配置。Java / Spring 团队直接上 Spring AI别犹豫别去折腾 LangChain4j。Chat RAG Function Calling 三大核心模块生产可用日常场景全覆盖。下一章我们一起5 分钟把 Hello World 跑起来顺便讲讲ChatClient的两种用法以及为什么要用流式什么场景用同步就够了。

相关新闻

Havenlon | 杂谈:AI时代,从零信任走向对抗性完整

Havenlon | 杂谈:AI时代,从零信任走向对抗性完整

一、零信任回答了一个问题,但不是全部问题过去二十年,企业安全最重要的一次范式转移,是零信任。它推翻了一个存在很久的默认假设:进入内网不等于值得信任,拥有账号不等于可以自由行动。每一次访问,都要重新…

2026/10/4 18:47:00 阅读更多 →
Kimi    LeetCode 3836. 恰好 K 个下标对的最大得分 TypeScript实现

Kimi LeetCode 3836. 恰好 K 个下标对的最大得分 TypeScript实现

以下是 LeetCode 3836. 恰好 K 个下标对的最大得分 的 TypeScript 实现。解题思路三维动态规划。定义 dp[i][j][k] 为:在 nums1 的前 i 个元素和 nums2 的前 j 个元素中,恰好选择 k 对下标所能获得的最大得分。状态转移有三种情况: 1. 跳过 n…

2026/10/8 11:53:20 阅读更多 →
MySQL单表数据量管理与性能优化实战

MySQL单表数据量管理与性能优化实战

1. MySQL单表数据量管理的核心考量当数据库表的数据量超过2000万行时,MySQL的性能曲线会开始出现明显拐点。这个数字不是凭空而来——在InnoDB存储引擎的B树索引结构下,三层索引树大约能支撑2000万级别的数据量。我经手过多个从百万级跃升到千万级的项目…

2026/10/8 13:55:20 阅读更多 →

最新新闻

螺栓销钉缺失检测:1209张VOC数据集与YOLOv8训练实践

螺栓销钉缺失检测:1209张VOC数据集与YOLOv8训练实践

简介:输电线路螺栓销钉缺失检测图像数据集专注电力设施智能巡检场景,面向计算机视觉研究者与电力运维开发人员,旨在解决销钉缺失这一高危隐患的自动识别问题。数据集共2000个文件、约89.52MB,包含791张高清JPEG巡检图像及1209个PA…

2026/10/12 0:32:15 阅读更多 →
AI知识简记(持续更新):用TaoToken统一Key打通VS Code与Cursor的大模型调用

AI知识简记(持续更新):用TaoToken统一Key打通VS Code与Cursor的大模型调用

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 0:32:15 阅读更多 →
信用风险预测模型实战:从标签定义、WOE特征工程到评分卡转换

信用风险预测模型实战:从标签定义、WOE特征工程到评分卡转换

简介:这份PDF是一篇基于机器学习算法的商业银行信用风险预测模型研究论文,适合金融科技、风控建模方向的从业者、研究生及竞赛选手参考。文章从信用风险研究的现实背景切入,系统梳理了多元判别分析、Logistic回归等传统统计方法,以…

2026/10/12 0:32:15 阅读更多 →
基于VGG的自然灾害图像分类:迁移学习与Grad-CAM实战

基于VGG的自然灾害图像分类:迁移学习与Grad-CAM实战

简介:这份资源面向图像识别与机器学习方向的初学者及进阶开发者,聚焦自然灾害场景的自动分类任务,帮助读者理解如何用VGG卷积神经网络完成从数据预处理到模型训练与评估的完整流程。压缩包共29个文件,约1.54MB,包含5个…

2026/10/12 0:31:15 阅读更多 →
JDK11核心新特性与升级实战:语法、API及GC全面解析

JDK11核心新特性与升级实战:语法、API及GC全面解析

1. 为什么说JDK11是继JDK8之后最值得升级的版本JDK11确实是一个非常特殊的存在。作为Oracle在2018年9月发布的LTS版本,它既是Java 8之后第一个真正意义上的长期支持版本,又是Oracle调整Java版本发布节奏后的关键节点。对于做Java开发的同学来说&#xff…

2026/10/12 0:31:15 阅读更多 →
Python+OpenCV答题卡自动批改:检测、切分、考号识别与选择题评分

Python+OpenCV答题卡自动批改:检测、切分、考号识别与选择题评分

简介:这份源码包面向计算机、数学、电子信息等专业的学生与开发者,聚焦答题卡自动识别与批改场景,可用于课程设计、期末大作业、毕设项目或初期项目立项演示。项目基于Python实现答题卡检测、试题切分、学生考号识别与选择题自动批改&#xf…

2026/10/12 0:31:15 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →