乐于分享
好东西不私藏

AI应用开发之Spring AI 框架实战系列(一)

AI应用开发之Spring AI 框架实战系列(一)
本系列文章将以实战为核心、以能够生产落地为目标,完整吃透 Spring AI 能力。从大模型对接,到 RAG 检索增强、AI Agent 智能体、多模态交互,再到实战,每篇文章都有可直接运行的代码,打通 Java 开发者从传统后端到 AI 应用开发的全链路。
一、Spring AI 介绍
Spring AI 是 Spring 官方出品,面向 Java/Spring 生态的企业级生成式 AI 集成框架,非自研大模型,而是统一封装各类大模型调用、向量数据库、AI 应用能力的中间件。
1、五大优势:
  • 模型无关统一抽象
    统一 ChatClient 、EmbeddingClient 接口,兼容 OpenAI、Azure OpenAI、Anthropic、Google、Ollama、智谱、阿里通义、DeepSeek等。
  • 原生深度适配 Spring Boot
    提供官方Starter、自动配置、DI注入,Java开发者极低学习成本。
  • 开箱即用企业级 AI 能力
    对话记忆、Prompt模板、流式输出、结构化POJO返回、Function Calling、RAG、向量库集成、链路监控、重试熔断。
  • 全模态 AI 能力
    聊天对话、向量嵌入、文生图、语音转写、语音合成、内容审核。
  • 向量数据库统一适配
    支持Milvus、PGVector、Redis、Chroma、Qdrant、Neo4j、MongoDB、Pinecone等,统一查询过滤语法。
2、九大核心组件:
  • ChatClient (最常用,对话交互)
    高阶 流式/同步 对话 API,内置上下文记忆、工具调用、结构化返回,业务开发首选。
  • ChatModel 
    底层模型接口,对应各家大模型具体实现。
  • EmbeddingClient 嵌入客户端
    将文本转为向量,是 RAG (检索增强) 的基础。
  • VectorStore 向量存储
    向量写入、相似度检索,私有化知识库必备。
  • Prompt 提示词工程
    模板化管理System提示词、变量占位、消息组装。
  • ChatMemory 对话记忆
    内存、Redis、JDBC持久化上下文,实现多轮聊天。
  • Function Calling (Tool工具调用)
    @Tool 注解定义 Java 方法,让大模型自动调用本地接口查实时数据(订单、天气、数据库),实现 AI Agent。
  • Structured Output 结构化输出
    强制大模型返回 JSON ,直接映射为 Java POJO ,避免解析乱码。
  • Observability 可观测性
集成 Micrometer 、Prometheus 、链路追踪,统计调用耗时、Token 消      耗、异常。
3、五大应用场景
几个典型的应用场景介绍
  • 智能问答知识库 (RAG)
    上传内部文档 -> 切片向量化存入向量库 -> 用户提问相似度检索 -> 上下文喂给大模型回答,解决大模型幻觉。
  • 多轮对话机器人
    客服、内部助手,自动保存聊天上下文。
  • AI Agent 智能体
    大模型自动调用后端接口、查询数据库、调用第三方 API 完成复杂任务。
  • 内容生成、总结、翻译、文案处理
  • 私有化本地大模型对接
    通过 Ollama 对接Llama3、Qwen、GLM等开源本地大模型。
4、Spring AI vs LangChain4j
对比
Spring AI
LangChain4j
归属
Spring 官方正式项目
社区开源移植版
Spring 适配
原生自动配置、深度整合
第三方适配,配置繁琐
设计理念
Spring 范式,企业工程化优先
对标 Python LangChain 逻辑
生态迭代
更新稳定、官方长期维护
社区驱动
选型建议
Spring 技术栈企业首选
非 Spring 项目可选
二、系列文章技术栈 (后续文章不再单独指出)
1、版本要求
  • JDK:17(及以上)
  • Spring Boot :3.2.x(及以上)
  • Spring AI :1.0.0-M4(里程碑版本,需配置 Spring Milestone 仓库)
  • LLM:阿里云百炼(DashScope)
2、配置 Maven 依赖
<properties>        <java.version>17</java.version>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncodin>        <!-- Spring Boot-->        <spring-boot.version>3.5.5</spring-boot.version>        <!-- Spring AI Alibaba-->        <SpringAIAlibaba.version>1.0.0.2</SpringAIAlibaba.version></properties>
<dependencies><!-- Spring Boot Web(必须) -->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <!--Spring AI Alibaba DashScope官方适配(核心依赖)-->        <dependency>        	<groupId>com.alibaba.cloud.ai</groupId>        	<artifactId>spring-ai-alibaba-starter-dashscope</artifactId>        </dependency><!-- knife4j API 文档与在线调试 --><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.5.0</version></dependency><!-- Spring Boot 配置处理器(生成自定义属性元数据,消除 IDE 警告) --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><!-- Lombok -->        <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>            <optional>true</optional>        </dependency><!-- Test -->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency><!-- Spring Boot Redis 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>    </dependencies>    <!-- Spring Milestone 仓库(必须,用于下载 Spring AI 里程碑版本) --><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories>
3、环境准备
  • 安装 JDK 17 并配置环境配置
  • 安装 Maven 3.6+
  • 注册阿里云账号并开通 百炼(DashScope)服务
  • 登录阿里云百炼控制台,进入 API-KEY 管理,创建新的 API Key

相关学习资料