一、SpringAI介绍官网地址https://spring.io/projects/spring-ai1.1如何选择版本解释一下各个版本的含义标签含义说明CURRENT正式稳定版GA官方推荐的生产可用版本API 稳定、bug 少有完整维护SNAPSHOT开发快照版还在开发中的版本包含新特性但随时可能改代码 / 删 API不稳定绝对不能用在生产PRE预览版Milestone大版本的里程碑预览比如-M4是第 4 个里程碑功能基本定型但还没最终发布适合尝鲜和测试我们这里选择最新的稳定版本1.1.41.2如何查看Spring AI 版本支持的Spring Boot 版本①查看参考文档对比维度Reference Doc.参考文档Api Doc.API 文档 / Javadoc核心定位面向开发者的「使用指南 / 用户手册」面向开发者的「代码字典 / 接口说明书」内容重点框架的整体功能、使用流程、业务场景示例、配置说明、最佳实践所有类、接口、方法的完整列表以及每个方法的参数、返回值、异常说明阅读目的学习如何使用 Spring AI 实现功能、解决问题查找某个具体类 / 方法的定义、参数含义、底层 API 细节典型使用场景想知道 “怎么用 Spring AI 实现 RAG、怎么调用大模型” 时找步骤和示例写代码时不知道ChatClient.Builder的某个方法怎么用需要查具体定义阅读方式按章节顺序阅读或按业务场景搜索直接搜索类名 / 方法名快速定位目标②在参考文档的Getting Started中查看1.3选择合适的Spring Boot版本标识全称含义生产环境是否推荐GAGeneral Availability正式稳定版功能完整、测试充分API 冻结✅强烈推荐CURRENT—该系列最新的稳定 GA 版会优先收到安全修复✅ 首选PREPre-release预览 / 测试版比如 RC、M 版功能未完全定型❌ 不推荐SNAPSHOT—开发快照版还在迭代中API 随时可能改动❌ 禁止使用这里选择3.5.x的最稳定版3.5.14二、搭建项目2.1搭建一个练习项目结构如下创建spring-ai模块来跑通第一个Spring AI 应用2.2引入pom依赖?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version3.5.14/version relativePath/ /parent groupIdcom.studying/groupId artifactIdspring-ai/artifactId version1.0-SNAPSHOT/version properties maven.compiler.source21/maven.compiler.source maven.compiler.target21/maven.compiler.target project.build.sourceEncodingUTF-8/project.build.sourceEncoding java.version21/java.version spring-ai.version1.1.4/spring-ai.version /properties !-- Spring AI BOM统一管理 spring-ai 所有子模块的版本 -- dependencyManagement dependencies dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-bom/artifactId version${spring-ai.version}/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement dependencies !-- Web -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !-- OpenAI Starter支持 OpenAI 及所有兼容接口DeepSeek、Moonshot 等 引入后自动配置 ChatModel、EmbeddingModel 等 Bean -- dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-starter-model-openai/artifactId /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope /dependency /dependencies build plugins plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId /plugin /plugins /build /project2.3配置 API Keysrc/main/resources/application.ymlspring: ai: openai: # 如果用 DeepSeek改成 https://api.deepseek.com # 如果用 OpenAI改成 https://api.openai.com或者不填默认就是这个 base-url: https://api.deepseek.com api-key: ${DEEPSEEK_API_KEY} # 从环境变量读取不要直接写在配置文件里 chat: options: model: deepseek-chat # DeepSeek-V3 的模型名 temperature: 0.7关于 API Key 的安全性三、写第一个 Controllerpackage com.studying.controller; import org.springframework.ai.chat.client.ChatClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; RestController RequestMapping(/chat) public class ChatController { private final ChatClient chatClient; // ChatClient.Builder 由 Spring AI 自动注册直接注入即可 public ChatController(ChatClient.Builder builder) { this.chatClient builder.build(); } /** * 最简单的对话接口 * GET /chat?message你好 */ GetMapping public String chat(RequestParam String message) { return chatClient.prompt() .user(message) .call() .content(); } }就这几行启动项目访问http://localhost:8080/chat?message你好就能得到 AI 的回复。预期输出类似你好很高兴见到你 我是DeepSeek由深度求索公司创造的AI助手。无论你有什么问题、需要什么帮助或者只是想聊聊天我都很乐意为你提供支持 我可以帮你解答各种问题协助处理文档进行创作和分析等等。有什么我可以为你做的吗我会尽我所能热情地帮助你✨四、换成 Ollama 本地模型按需如果不想用云端 API也可以用 Ollama 跑本地模型完全免费。第一步改依赖把spring-ai-starter-model-openai换成同时要将之前 spring-ai-starter-model-openai 去掉否则会冲突。dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-starter-model-ollama/artifactId /dependency第二步改配置spring: ai: ollama: base-url: http://localhost:11434 # Ollama 默认端口 chat: options: model: qwen2.5:7b # 确保已经 ollama pull qwen2.5:7b第三步Controller 代码一行不用改ChatClient.Builder注入的是 Ollama 的实现接口完全一致。这就是 Spring AI 抽象层的价值所在。代码量极少但背后 Spring AI 帮你处理了 HTTP 调用、认证、序列化这些脏活。下节鸡哥带大家深挖ChatClient这个 API把各种参数和用法都过一遍。