Spring AI Alibaba 实战指南:从 Hello World 到企业级智能应用目录引言:为什么选择 Spring AI Alibaba项目架构与环境搭建阶段一:基础对话 Hello World阶段二:Prompt 工程与代码助手阶段三:流式输出与智能客服阶段四:RAG 检索增强生成阶段五:Agent 智能体与函数调用阶段六:生产级特性与优化总结与最佳实践1. 引言:为什么选择 Spring AI Alibaba1.1 AI 应用开发的挑战在传统的 AI 应用开发中,开发者面临以下挑战:API 调用复杂:需要手动处理 HTTP 请求、认证、重试等状态管理困难:多轮对话的记忆管理需要自行实现缺乏统一抽象:不同大模型厂商的 API 差异大,切换成本高生产特性缺失:监控、缓存、降级等企业级特性需要从零开始1.2 Spring AI Alibaba 的优势Spring AI Alibaba 是阿里巴巴基于 Spring AI 框架推出的 AI 开发套件,提供:声明式 API:使用ChatClient像调用普通服务一样调用大模型统一的抽象层:屏蔽底层模型差异,支持通义千问、文心一言等生产级特性:内置缓存、重试、熔断、监控等能力生态整合:与 Spring Boot、Spring Cloud 无缝集成1.3 本文学习目标通过一个完整的spring-ai-alibaba-learning项目,循序渐进掌握:阶段主题核心技能一基础对话ChatClient 使用、配置管理二Prompt 工程模板设计、Few-shot、角色设定三流式对话SSE 流式输出、会话记忆四RAG 实战向量检索、文档问答五Agent 开发函数调用、工具编排六生产优化缓存、监控、降级2. 项目架构与环境搭建2.1 项目结构spring-ai-alibaba-learning/ ├── src/main/java/com/alibaba/cloud/ai/learning/ │ ├── SpringAiAlibabaLearningApplication.java # 启动类 │ ├── config/ # 生产级配置 │ │ ├── MonitoredChatClient.java # 监控包装器 │ │ ├── CachedChatClient.java # 缓存包装器 │ │ ├── ResilienceConfig.java # 熔断降级 │ │ └── RetryConfig.java # 重试配置 │ ├── controller/ # 控制器层 │ │ ├── AIController.java # 基础对话 │ │ ├── CodeAssistantController.java # 代码助手 │ │ ├── CustomerServiceController.java # 智能客服 │ │ ├── KnowledgeBaseController.java # 知识库 │ │ └── OrderAgentController.java # Agent 智能体 │ ├── service/ # 服务层 │ │ ├── CodeAssistantService.java # Prompt 模板 │ │ ├── CustomerService.java # 会话管理 │ │ ├── KnowledgeBaseService.java # RAG 检索 │ │ └── OrderAgentExecutor.java # Agent 执行 │ ├── agent/ # Agent 工具 │ │ └── OrderAgent.java # 订单助手 │ └── model/ # 数据模型 └── src/main/resources/ └── application.yml # 配置文件2.2 核心依赖properties java.version17/java.version spring-ai-alibaba.version1.1.2.0/spring-ai-alibaba.version /properties dependencies !-- Spring AI Alibaba DashScope -- dependency groupIdcom.alibaba.cloud.ai/groupId artifactIdspring-ai-alibaba-starter-dashscope/artifactId version${spring-ai-alibaba.version}/version /dependency !-- Spring Cloud Circuit Breaker -- dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-circuitbreaker-resilience4j/artifactId version3.1.0/version /dependency !-- Micrometer Prometheus -- dependency groupIdio.micrometer/groupId artifactIdmicrometer-registry-prometheus/artifactId /dependency /dependencies2.3 配置说明spring: ai: dashscope: api-key: ${DASHSCOPE_API_KEY:sk-xxx} chat: model: qwen-max # 通义千问模型 temperature: 0.8 # 创造性参数 (0-2) top-p: 0.9 # 采样参数 max-tokens: 2000 # 最大输出长度 ai: retry: max-attempts: 3 # 最大重试次数 backoff: min-interval: 1000 # 最小退避间隔 max-interval: 30000 # 最大退避间隔 multiplier: 1.5 # 退避倍数2.4 快速启动# 1. 设置 API Key export DASHSCOPE_API_KEY=sk-your-api-key # 2. 启动项目 cd spring-ai-alibaba-learning mvn spring-boot:run # 3. 测试接口 curl "http://localhost:8081/ai/chat?message=你好"3. 阶段一:基础对话 Hello World3.1 核心概念:ChatClientChatClient是 Spring AI 的核心抽象,提供简洁的链式 API:@RestController @RequestMapping("/ai") public class AIController {