第 1 章 · Spring AI 技术概览

用JAVA实现人工智能:采用框架Spring AI Java 过去,Java在AI应用框架方面存在不足,缺乏一个能够良好支持AI开发的统一框架。SpringAI应运而生,它是一个专为AI工程设计的应用框架,旨在将Spring生态系统的设计原则如可移植性和模块化引入AI领域。SpringAI的核心优势在于它提供了一套标准化接口,使得开发者可以轻松地切换不同的AI服务提供商,仅需修改配置即可。此外,SpringAI与现有的Spring生态兼容性极好,同时也完美地融入了Java面向对象编程的特点。这不仅简化了开发流程,还极大地减少了迁移和维护的成本。 阅读详情

版本:Spring AI 2.0.1 · Spring Boot 4.x · JDK 17+(推荐 21) 本章先建立全貌。环境搭建、API 细节与排障,放在后续专章。

把大模型接入 Java 业务,常见工作包括:对接各家 HTTP、组装多角色消息、解析响应与 token、执行工具调用、维护多轮记忆、检索私有知识、处理流式输出、得到结构化结果,并补齐观测。

这些都可以自研 SDK 封装,但每个服务重复做一遍成本很高。Spring AI 的定位,是用 Spring 体系里熟悉的抽象和 Boot 自动配置,把上述能力收成可替换模块。业务代码尽量面向接口编写;底层切换 OpenAI、Ollama 或兼容 endpoint 时,主路径改动应尽量小。


1.1 三层结构

理解 Spring AI,可以先抓住上图这三层;后续章节都是在此基础上展开。

应用层是业务开发最常接触的一层。多数场景从 ChatClient 起步:API 更顺手,记忆、RAG、日志、安全可通过 Advisors 接入,业务方法也能以 @Tool / ToolCallback 的形式交给模型调用。Controller 或领域服务通常停在这一层即可。

抽象层是真正的解耦边界。ChatModel、EmbeddingModel、VectorStore,以及消息与 Prompt,都定义在这里。更换供应商时,业务应尽量只依赖这些抽象类型,而不是某一家的私有客户端。在图节点中做薄调用,或在多模型之间路由时,也常会直接使用 ChatModel。

提供商层是各家模型与向量库的具体实现,通过 spring-ai-starter-* 自动配置进入容器。业务代码应尽量停留在抽象层之上。

此外还有两条贯穿能力:System / User / Assistant / Tool 组成的消息流;以及基于 Micrometer Observation 的调用次数、耗时与 token 观测。后面各章基本是在这张图上深入某一部分,而不是引入另一套概念体系。


1.2 一次对话请求的路径

聊天主链可以概括为:

业务代码
  → ChatClient(可选 Advisors / Tools / 模板)
  → Prompt(Message 列表 + ChatOptions)
  → ChatModel.call 或 stream
  → 具体 Provider
  → ChatResponse(文本 / 结构化结果 / toolCalls / Usage)

阅读这条链路时,有三点值得提前澄清:

  1. ChatClient 不是另一套协议。 它减少的是组装成本;底层流通的仍是 Message、Prompt、ChatResponse。

  2. 工具循环既可以发生在 ChatClient / Advisor 侧,也可以由外层自行实现。 这与是否引入状态图是不同层面的问题。

  3. Embedding、VectorStore、MCP 不一定经过聊天主链的每一步,但模块引入与自动配置的方式是一致的。

默认建议:普通对话优先使用 ChatClient;需要更薄的调用、手工控制工具循环,或做多模型切换时,再下沉到 ChatModel。具体用法在后续章节分别说明。


1.3 能力覆盖范围

不必先记忆模块清单,按要解决的问题来看会更清楚。上图是能力块总览,这里只补几句阅读提示:

  • 对话、流式、消息与选项,是后面几乎所有能力的基础。

  • Advisors、窗口 / 长期记忆、Tool、结构化输出、RAG、知识图谱,是业务里最常叠加的能力块。

  • MCP 扩展的是工具目录,不替代流程编排。

  • 观测、安全、多模态与评估,对应「能 Demo」之后的工程化。

  • 依赖统一走 BOM + starter,避免手写零散版本号。

本章目标是建立「有哪些能力块、各自大致负责什么」的印象。配置方式与常见问题,留到对应专章。


1.4 依赖引入方式

能力划分可以很细,但应用侧日常入口并不复杂:

  1. 用 spring-ai-bom 固定版本

  2. 引入模型 starter,先打通聊天

  3. 记忆仓库、向量库、MCP、Advisor 等按需追加

实践上建议:版本只在 BOM 中固定一处,业务只引入当前场景需要的 starter。 具体坐标在后续依赖章节给出。


1.5 能力边界

Spring AI 适合解决的是:多家模型的统一接入,以及工具、记忆、RAG、知识图谱接入模式、结构化输出、流式、MCP、观测等周边能力,并与 Spring Boot 的使用方式对齐。

它不负责、或不适合单独承担的,主要是另一类问题:

  • 复杂状态机、人工审批、中断后恢复 → 更适合 LangGraph4j

  • BPM、模型训练与微调平台

  • 完整 GraphRAG 产品层 / 超大规模混合检索中台(通常需在 VectorStore 与图库之上自建) 因此本系列的分工是:模型与周边能力使用 Spring AI;当流程本身成为业务资产时,再引入图编排。二者是底座与编排的关系,而不是互相替代。本分册先把 Spring AI 这一侧讲清楚。


1.6 版本约定

本分册示例统一基于:

  • Spring AI 2.0.1(spring-ai-bom:2.0.1)

  • Spring Boot 4.x

  • Java 17+(推荐 21)

下一章先完成最小可运行工程,再依次展开消息、ChatClient、Provider、记忆与工具等内容。

利用Spring Boot以及Spring AI构建生成式人工智能应用 Spring AI,作为行业领导者,通过其强大、灵活的API和先进的功能,为各种行业提供了颠覆性的解决方案。在本专题中,我们将深入探讨Spring AI在各领域的应用示例,每个案例都将展示Spring AI如何满足特定需求,实现目标,并将这些LESSONS LEARNED扩展到更广泛的应用。希望这个专题能对你有所启发,更深入地理解和利用Spring AI的无限可能。Spring框架在软件开发领域已经有超过20年的历史,自Spring Boot 1.0版本发布以来已有10年。 阅读详情

相关推荐

Spring AI 1.1 技术详解:Java 生态 AI 开发的企业级落地指南

Spring AI 1.1 作为 Spring 官方推出的 AI 开发框架,旨在为 Java 开发者提供「零门槛、原生态、企业级」的 AI 集成解决方案。本文从技术原理与工程实践角度,系统拆解 Spring AI 1.1 的 5 大核心升级,包括 MCP 协议增强、结构化输出优化、多智能体框架、企业级特性完善及本地 LLM 支持,每个特性均附「技术原理 + 完整代码示例 + 生产级配置 + 注意事项」,助力开发者快速实现从 Demo 到生产的全流程落地,解决多模型适配、业务系统联动、生产环境部署等核心痛点。

srlsong的博客 1632

Spring AI 2.0.1-SNAPSHOT:企业级AI应用开发的终极依赖管理解决方案

在当今AI技术快速发展的时代,企业如何高效、稳定地集成AI能力到现有系统中成为了技术决策者面临的核心挑战。Spring AI作为Spring生态中的AI应用框架,通过其精妙的依赖管理机制,为企业提供了从零到一的AI集成完整解决方案。本文将深度解析Spring AI 2.0.1-SNAPSHOT版本的依赖管理体系,揭示其如何帮助企业构建可维护、可扩展的AI应用架构。 ## 🎯 企业AI集成的三大

gitblog_00353的博客 886

基于Spring AI 1.1.0-SNAPSHOT 搭建 Streamable Http MCP Server 亲测可用

Spring AI 1.1.0-SNAPSHOT发布,支持工具回调功能。本文演示了如何配置Spring MCP服务(端口8088),包括依赖引入、工具类定义(WeatherService)和MCP配置。通过Python Langchain代理测试,实现了基于城市名称查询温度的对话功能。关键点:1)Spring Boot 3.2.6和Spring AI依赖配置;2)@Tool注解定义工具方法;3)Langchain代理集成测试,支持多轮对话。案例展示了Spring AI与Python生态的协同能力。

jh88h的博客 1918

Spring AI 2.0.1 发布:修复 7 个 CVE 并新增 Agentic Loop Protection,Java Agent 开发必读(含升级清单与

Spring AI 2.0.1 真正提醒我们的是:Agent 的工具边界、缓存上下文、会话和聊天记忆,都必须被运行时真正约束。升到 Spring AI 2.0.1给 ToolCallingAdvisor 配 maxToolCalls这样既堵住已知 CVE,也给自己加上一层循环保护。

2401_88179843的博客 328

ZYNQ开发(2)在Linux系统层上PL-PS通过AXI-DMA传输数据详细步骤及注意事项

参考的网络资料 https://github.com/bperez77/xilinx_axidma/tree/master https://gitlab.gnome.org/HosseinBeheshti/UlteraZed7EV/-/tree/master/petalinux/xilinx_axidma https://www.icode9.com/content-3-925319.html https://blog.csdn.net/weixin_38218267/article/details/1

aizaiyueye的专栏 3448

Android13配置selinux让system应用可读sys,proc,SN号

Android13预置的system应用,需要读/sys, /proc目录,读(SN)serial number号, 需要修改selinux配置,否则会报avc错.其修改方法会比Android11复杂一些.。

zmlovelx(帅得不敢出门 程序员群31843264) 2654

【Spring AI】Spring AI 2.0.1 新特性袭来

整体看下来,Spring AI 2.0.1 虽然只是一个维护版本,但更新一点都不小。除了修复 7 个 CVE,这次还把工具调用、流式响应、MCP、文档处理、向量数据库等一批细节继续补齐,尤其是 Agent 工具调用次数限制这类能力,对真正落地生产环境很重要。Spring AI 现在已经不只是让 Java 调一下大模型这么简单了,而是在持续补齐企业级 AI 应用开发需要的基础设施。

杰叔叔不是个好叔叔的博客 262

博流BL602开发二 环境搭建与固件烧录实战

本文详细介绍了博流BL602 RISC-V芯片开发环境的搭建与固件烧录全流程。从Linux/WSL系统选择、RISC-V工具链配置、SDK获取,到编译首个Wi-Fi示例并生成固件镜像,再到通过命令行或图形化工具完成烧录及串口测试,提供了完整的实战指南和常见问题解决方案。

weixin_29175469的博客 451

[AI工程] Spring AI 第十八篇:AI 应用的安全边界与权限传递——Prompt Injection 拦什么、ToolContext 信谁、写操作谁来确认

AI应用安全边界模糊,攻击面延伸至模型决策链。传统鉴权无法覆盖模型生成参数与工具调用场景,导致Prompt Injection、身份断链、指令伪造等风险。Spring AI 2.0.1 提供SafeGuardAdvisor关键词拦截,但仅能防简单匹配,无法识别语义或绕过字符变体,且可能误伤正常流程。真正防护需在工具层重审权限,结合ToolContext传递身份,强制人工确认关键操作,实现“模型不可信”下的安全闭环。

OxYGC 541

探索LLM世界:新手小白的学习路线图

通过系统的学习和实践,新手小白也能逐步掌握LLM的核心技术。掌握LLM不仅能提升个人技术水平,还能为职业发展带来广阔的前景。未来,随着技术的不断进步,LLM将在更多领域发挥重要作用,成为推动科技进步的重要力量。学习LLM是一条充满挑战但也充满机遇的道路。只要你坚持不懈、不断学习和实践,就一定能够在LLM领域取得突破。希望本文提供的学习路线图能为你指明方向,助你早日掌握LLM,开启AI学习的新篇章!

m0_62110645的博客 2360

MMdetection3D与MMdetection版本匹配全攻略:从安装到测试一步到位

本文详细解析了MMdetection3D与MMdetection版本匹配的关键问题,提供了从环境配置到测试验证的完整指南。针对常见的安装错误,文章强调了版本依赖链(PyTorch、MMCV、MMDetection、MMDetection3D)精确对齐的重要性,并给出了基于CUDA 11.3等环境的实战版本组合与避坑方案,帮助用户高效部署3D目标检测开发环境。

xgboost6farmer的博客 240

手把手带你用 Spring AI 2.0 搭建 AI Agent 平台

基于 **Spring Boot 4.0.8 + Spring AI 2.0.1 + DeepSeek**,从零搭建一个覆盖 Tool Calling、MCP、RAG、ReAct、Skills、安全认证、弹性容错的 AI Agent 平台。115 个测试用例、五层架构、双环境 Profile,跟着做一遍,Spring AI 2.0 核心能力全部落地。

一起探索IT的世界 1107

手把手教你解决Realsense D455在ROS下IMU数据不输出的问题(附固件降级指南)

本文详细解析了Realsense D455在ROS环境下IMU数据不输出的问题,提供了固件降级和ROS配置的完整解决方案。通过版本兼容性分析和实战操作指南,帮助开发者快速恢复IMU数据流,优化机器人开发体验。

weixin_42531494的博客 372

Spring AI: 为Java应用赋能人工智能

Spring AI 是 Spring 生态系统的一部分,旨在简化 Java 应用中人工智能功能的集成。它通过统一接口支持多个主流 AI 模型提供商,如 OpenAI 和 Google Vertex AI,并强调可移植性和模块化设计。文章详细介绍了 Spring AI 的核心组件、快速入门步骤和高级功能,例如 RAG(检索增强生成)与向量数据库集成。此外,还涵盖了最佳实践、安全性和性能优化策略,并展望了其未来发展。

lenyan~的博客 1849

Linux kernel crypto的介绍和代码导读

在Linux kernel的module_init阶段会将algif_type_skcipher、algif_type_aead、algif_type_hash、algif_type_rng 四种算法注册.在userspace通过netlink调用了,kernel种的af_alg模块收到消息后, 根据上层传来的算法种类名字来选择走哪一个结构体(alg_type_xxx)的ops函数。也就是添加到af_alg维护的alg_types链表种. alg_types链表种仅有这四个数据.

baron-周贺贺-代码改变世界ctw 321

Python爬虫实战:用最新技术高效下载摄影网站图片

本文将深入探讨如何利用Python最新技术栈构建一个功能完整的摄影网站图片爬虫。我们将使用异步编程、智能反爬策略和现代化工具,实现高效、可靠的图片下载系统。高性能异步架构:使用asyncio实现高并发下载智能反爬策略:支持多种反爬措施和浏览器模拟多网站适配:可解析多种摄影网站结构数据管理:完整的下载记录和统计功能扩展性强:支持代理、分布式等高级功能用户友好:提供进度显示和详细日志。

2201_76125261的博客 1644

Spring AI Alibaba 概览

Spring AI Alibaba是基于Spring AI框架的增强版AI开发平台,深度集成阿里云百炼平台,提供三大核心能力:1)Graph多智能体框架,支持工作流和智能体应用的快速开发;2)企业级AI生态集成,包括模型接入、RAG知识库、监控等解决方案;3)自主规划的JManus智能体平台探索。该框架既兼容Spring AI标准接口,又针对国内企业需求扩展了通义千问、向量检索、多智能体协作等功能,通过Nacos、Higress AI等组件实现企业级落地,为开发者提供从低代码到零代码的智能体开发方案。

qq_31745863的博客 2543

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Spring AI 介绍

Spring AI 是 Spring 生态系统推出的面向人工智能工程的应用框架,旨在将 Spring 的设计原则(如可移植性、模块化)引入 AI 领域,为 Java 开发者提供便捷的 AI 集成方案。其核心特点包括生态融合、跨模型支持、提示工程、嵌入技术、Advisor 拦截器机制和检索增强生成(RAG)。Spring AI 通过标准化接口、模块化设计和快速集成,降低了 Java 开发者使用 AI 技术的门槛。然而,它强制依赖 JDK 17+ 和 Spring Boot 3.3+,对老旧系统不友好,且部分功

王小工小工历程 3652

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【Spring AI实战】第1章 Spring AI 环境搭建与核心架构

SpringAI 的核心架构可以概括为:以 ​​Client​​ 为门户,以 ​​Prompt​​ 为标准化输入,以 ​​Response​​ 为标准化输出,通过配置指向具体的 ​​Model​​。这套设计使得在 Spring 应用中集成和切换 AI 能力变得像使用数据库 (​​) 或消息队列 (​​) 一样简单和熟悉,极大地提升了开发效率。

gaochufukanyongren的博客 914

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【Spring AI 1.0.0】Spring AI 1.0.0框架快速入门(1)——Chat Client API

【Spring AI 1.0.0】Spring AI 1.0.0框架快速入门(1)——Chat Client API

Hanson的博客 2652

1、【Spring AI】Spring AI的介绍

目标:简化包含人工智能功能的应用程序开发,避免不必要的复杂性。特点支持多种模型提供者:包括Anthropic、Azure OpenAI、Amazon Bedrock等众多主流厂商。多种模型类型支持:如Chat、Embedding、Text to Image等,还支持多模态模型。便携式API:跨AI提供者,支持同步和流API选项,还可访问模型特定功能。Spring Boot自动配置:适用于所有模型,简化设置和集成。AOT原生图像支持:提高性能,减少启动时间。增强的可观察性。

莫凡的博客 1406

Spring AI开发跃迁指南(第二章:极速上手1——Spring AI ChatClient 20行代码构建人工智能应用)

Spring Ai ChatClinet基本功能讲解及相关配置的应用,并使用简单的代码示例快速上手

Timmer的博客 1821
上一篇: 为什么选择 Spring AI + LangGraph4j
下一篇: 第 2 章 · SpringAI环境搭建与 Hello World
AI深栈
博客等级 码龄14年 1粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值