# spring-ai-examples **Repository Path**: dickeryang/spring-ai-examples ## Basic Information - **Project Name**: spring-ai-examples - **Description**: spring AI 专栏项目示例代码 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-01 - **Last Updated**: 2026-04-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring AI 企业级应用开发实战
**《Spring AI 企业级应用开发实战:从零基础到 AI 架构师的完整成长路径》配套代码仓库** [![Java](https://img.shields.io/badge/Java-17-blue.svg)](https://openjdk.java.net/) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.2.4-brightgreen.svg)](https://spring.io/projects/spring-boot) [![Spring AI](https://img.shields.io/badge/Spring%20AI-1.0.0--M6-blue.svg)](https://spring.io/projects/spring-ai) [![License](https://img.shields.io/badge/License-Apache%202.0-green.svg)](LICENSE) [![Status](https://img.shields.io/badge/Status-In%20Progress-yellow.svg)](#-连载状态) 📚 **本专栏共 53 篇,系统讲解 Spring AI 从入门到企业级架构的完整技能体系**
--- ## 📖 专栏简介 ### 🎯 专栏定位 本专栏面向**Java 开发者、后端工程师和企业级应用开发者**,提供从**Spring AI 零基础到生产级 AI 架构师**的完整技能体系。 通过系统性、实战性的内容设计,涵盖 **Spring AI 框架核心**、**RAG 知识库构建**、**Agent 智能体开发**、**向量数据库集成**、**大模型 API 调用**、**企业级架构设计**等核心主题,助力开发者实现从**传统 Java 开发到 AI 架构师**的技能跃迁。 ### ✨ 核心价值 ✅ **系统性知识体系**: 从 Spring AI 基础到企业级架构,形成完整的 AI 开发知识闭环 ✅ **实战导向**: 每篇文章都包含企业级真实场景的代码实践,提供可直接落地的解决方案 ✅ **前沿技术**: 跟踪 Spring AI 最新发展,保持内容的前沿性和实用性 ✅ **架构思维**: 培养 AI 应用架构设计能力,从代码层面提升到系统架构层面 ✅ **职业发展**: 掌握企业急需的 AI 技能,提升职场竞争力,实现薪资跃迁 ### 📊 专栏统计 | 指标 | 数据 | |------------|----------------------| | **文章总数** | 53 篇 | | **代码示例** | 100+ 个完整示例 | | **实战项目** | 10+ 个综合项目 | | **配置文件** | 20+ 个生产级配置 | | **预计学习时长** | 20-25 周(每周 10-15 小时) | | **完成进度** | 🔄 连载中 | ### 🎯 目标读者 1. **开发初学者**: 有 Java 和 Spring Boot 基础,想系统学习 Spring AI 开发技能,构建智能化应用 2. **1-3 年经验**: 希望系统提升 AI 应用能力,掌握 RAG、Agent 等核心技术,向 AI 工程师方向发展 3. **3-5 年经验**: 寻求技术突破,向 AI 架构师方向发展,需要掌握企业级 AI 应用架构设计和性能优化 4. **技术管理者**: 需要了解 AI 技术栈选型、团队技术升级路径,制定 AI 转型战略 --- ## 🚀 快速开始 ### 📋 环境要求 ```bash - JDK 17+ - Maven 3.6+ - OpenAI API Key 或 阿里云 DashScope API Key ``` ### 💻 安装步骤 #### 1. 克隆项目 ```bash cd /Users/dickeryang/deploy/java/spring-ai/spring-ai-examples ``` #### 2. 编译项目 ```bash mvn clean package -DskipTests ``` ✅ **编译成功标志:** ``` BUILD SUCCESS Replacing main artifact with repackaged archive ``` #### 3. 配置 API Key **方式一:使用环境变量(推荐)** ```bash # OpenAI API Key export OPENAI_API_KEY=sk-your-openai-api-key-here # 或使用通义千问(推荐国内用户) export DASHSCOPE_API_KEY=sk-your-dashscope-api-key ``` **方式二:修改配置文件** 编辑 `spring-ai-examples/src/main/resources/application.yml`: ```yaml spring: ai: openai: api-key: sk-your-openai-api-key-here dashscope: api-key: sk-your-dashscope-api-key ``` #### 4. 启动应用 ```bash java -jar target/spring-ai-examples-1.0.0.jar ``` 启动成功后会看到: ``` Tomcat started on port 8080 (http) with context path '' Started SpringAiExamplesApplication in 4.168 seconds 初始化 ChatClient ``` --- ## 📡 API 接口测试 项目提供以下 RESTful API 接口: ### 1. 简单聊天接口(GET) **请求:** ```bash curl -G --data-urlencode "message=Hello" "http://localhost:8080/api/chat" ``` **响应:** ```json { "reply": "Hello! How can I assist you today?", "costTime": 1250 } ``` ### 2. 高级聊天接口(POST) **请求:** ```bash curl -X POST http://localhost:8080/api/chat/send \ -H "Content-Type: application/json" \ -d '{ "message": "用三句话介绍人工智能", "systemPrompt": "你是一位专业的 AI 助手,请用简洁的语言回答", "temperature": 0.5, "maxTokens": 200 }' ``` **响应:** ```json { "request": { "message": "用三句话介绍人工智能", "systemPrompt": "你是一位专业的 AI 助手,请用简洁的语言回答", "temperature": 0.5, "maxTokens": 200 }, "reply": "人工智能是模拟人类智能的计算机系统...", "model": "gpt-3.5-turbo", "costTime": 1580 } ``` ### 3. 上下文对话(POST) **请求:** ```bash curl -X POST http://localhost:8080/api/chat/context \ -H "Content-Type: application/json" \ -d '{ "messages": [ "我叫小明", "记住了,你的名字是小明", "你喜欢什么运动?" ] }' ``` **响应:** ```json { "messagesCount": 3, "reply": "我喜欢各种球类运动,特别是篮球和足球。你呢?", "costTime": 1890 } ``` ### 4. 多模型切换(POST) **请求:** ```bash curl -X POST http://localhost:8080/api/chat/model \ -H "Content-Type: application/json" \ -d '{ "message": "Hello", "model": "qwen-max" }' ``` **支持的模型:** | 模型 | 提供商 | 说明 | |-----------------|--------|------------| | `gpt-3.5-turbo` | OpenAI | 快速、经济实惠 | | `gpt-4` | OpenAI | 最强性能 | | `qwen-max` | 通义千问 | 国产大模型,中文优化 | | `qwen-plus` | 通义千问 | 性价比之选 | **响应:** ```json { "model": "qwen-max", "reply": "Hello! How can I assist you today?", "costTime": 2100 } ``` ### 5. 健康检查 ```bash curl http://localhost:8080/api/chat/health ``` **响应:** `OK` --- ## 🏗️ 项目结构 ``` spring-ai-examples/ ├── src/main/java/com/example/springai/ │ ├── SpringAiExamplesApplication.java # 主启动类 │ ├── client/ │ │ └── OpenAiClient.java # 统一 API 客户端 │ ├── config/ │ │ ├── AiConfig.java # Spring AI 配置 │ │ └── OpenAiProperties.java # OpenAI 配置属性 │ ├── controller/ │ │ └── ChatController.java # REST 控制器 │ └── service/ │ └── ChatService.java # 业务逻辑层 ├── src/main/resources/ │ └── application.yml # 配置文件 ├── pom.xml # Maven 配置 └── README.md # 项目文档 ``` --- ## 💡 核心代码解析 ### 1. ChatClient 使用(OpenAiClient.java) ```java @Component @RequiredArgsConstructor public class OpenAiClient { private final ChatClient chatClient; /** * 简单对话 */ public String chat(String message) { log.info("收到消息:{}", message); long startTime = System.currentTimeMillis(); try { String response = chatClient.prompt() .user(message) .call() .content(); long costTime = System.currentTimeMillis() - startTime; log.info("AI 回复:{} (耗时:{}ms)", response, costTime); return response; } catch (Exception e) { log.error("AI 调用失败:{}", e.getMessage(), e); throw new RuntimeException("AI 服务调用失败:" + e.getMessage(), e); } } /** * 上下文对话 */ public String chatWithContext(List messages) { log.info("上下文对话,消息数:{}", messages.size()); try { StringBuilder promptBuilder = new StringBuilder(); for (int i = 0; i < messages.size(); i++) { String role = (i % 2 == 0) ? "User" : "Assistant"; promptBuilder.append(role) .append(": ") .append(messages.get(i)) .append("\n"); } return chatClient.prompt() .user(promptBuilder.toString()) .call() .content(); } catch (Exception e) { log.error("上下文对话失败:{}", e.getMessage(), e); throw new RuntimeException("上下文对话失败:" + e.getMessage(), e); } } } ``` ### 2. Bean 配置(AiConfig.java) ```java @Configuration public class AiConfig { private final OpenAiChatModel openAiChatModel; @Bean public ChatClient chatClient() { log.info("初始化 ChatClient"); return ChatClient.builder(openAiChatModel).build(); } } ``` ### 3. 配置属性类(OpenAiProperties.java) ```java @Data @Configuration @ConfigurationProperties(prefix = "spring.ai.openai") public class OpenAiProperties { private String apiKey; private final String model = "gpt-3.5-turbo"; private final Double temperature = 0.7; } ``` --- ## 🔧 常见问题 FAQ ### Q1: 编译失败,找不到 Spring AI 依赖 **问题:** `Could not resolve dependencies for project` **解决:** 1. 确保 POM 中添加了 Spring Milestones 仓库 2. 使用正确的版本号(1.0.0-M6) ```xml spring-milestones https://repo.spring.io/milestone ``` ### Q2: 启动失败,缺少 ChatClient Bean **问题:** `No qualifying bean of type 'ChatClient' available` **解决:** 确保创建了 `AiConfig` 配置类并正确注入 `OpenAiChatModel` ### Q3: API 调用超时 **问题:** `Operation timed out` **解决:** 1. 检查网络连接 2. 如在国内,建议使用通义千问模型 3. 配置代理: ```yaml spring: ai: openai: base-url: https://api.openai.com/v1 proxy: host: your-proxy-host port: 7890 ``` ### Q4: 如何切换到通义千问? **方法:** 修改配置文件: ```yaml spring: ai: dashscope: api-key: ${DASHSCOPE_API_KEY} chat: options: model: qwen-max ``` 然后修改代码使用 `DashscopeChatModel` 替代 `OpenAiChatModel` ### Q5: 如何降低 Token 消耗? **建议:** 1. 设置 `maxTokens` 限制输出长度 2. 调低 `temperature` 参数(0.3-0.5) 3. 精简 Prompt,避免过长的上下文 4. 使用缓存策略,避免重复调用 --- ## 📊 性能优化建议 ### 1. 连接池配置 ```yaml spring: ai: openai: connection-pool: enabled: true max-total: 50 max-per-route: 10 ``` ### 2. 缓存策略 在 Service 层添加 Redis 缓存: ```java @Service public class ChatService { @Cacheable(value = "chatCache", key = "#message") public String chat(String message) { return openAiClient.chat(message); } } ``` ### 3. 限流保护 ```java @Service public class ChatService { @RateLimiter(name = "chatLimiter", fallbackMethod = "chatFallback") public String chat(String message) { return openAiClient.chat(message); } } ``` --- ## 🛠️ 技术栈 ### 后端核心技术 ``` 核心框架:Spring Boot 3.x + Spring Framework 6.x + Spring AI 1.x AI 框架:Spring AI + LangChain4j + Semantic Kernel 大模型 API: OpenAI GPT-4/3.5 + Anthropic Claude + Azure OpenAI + 通义千问 向量数据库:Redis Vector + Pinecone + Milvus + Weaviate + pgvector 数据访问:Spring Data JPA + MyBatis-Plus + Redis Template 缓存中间件:Redis 7.x + Caffeine + Redisson 消息队列:RabbitMQ + Kafka + RocketMQ 搜索引擎:Elasticsearch 8.x + OpenSearch ``` ### 基础设施与 DevOps ``` 数据库:MySQL 8.0 + PostgreSQL 15+ + MongoDB 7.x 容器化:Docker 24.x + Kubernetes 1.28+ + Helm 3.x CI/CD: Jenkins 2.x + GitLab CI + GitHub Actions 监控告警:Prometheus 2.x + Grafana 10.x + SkyWalking 日志系统:ELK Stack (Elasticsearch + Logstash + Kibana) + Loki API 网关:Kong + APISIX + Spring Cloud Gateway 服务网格:Istio 1.19+ + Linkerd ``` ### 配套工具链 ``` 开发工具:IntelliJ IDEA 2024.x + VS Code + Cursor 构建工具:Maven 3.9.x + Gradle 8.x 版本控制:Git 2.x + GitFlow + GitHub/GitLab 测试工具:JUnit 5 + Mockito + Testcontainers + Postman 调试工具:Arthas + VisualVM + JProfiler AI 辅助:GitHub Copilot + Cursor + Codeium ``` --- ## 💡 学习收获 通过本专栏学习,你将掌握: ✅ **Spring AI 框架**: 熟练使用 Spring AI 开发 AI 应用,掌握 ChatModel、Function Calling 等核心 API ✅ **RAG 技术栈**: 从零构建企业级知识库系统,掌握文档处理、向量化、检索优化全流程 ✅ **Agent 开发**: 设计自主规划的 AI 智能体,掌握任务分解、工具调用、多 Agent 协作 ✅ **架构设计**: 设计高可用、高性能的企业级 AI 应用架构,掌握微服务、监控、安全等核心能力 ✅ **性能优化**: LLM 成本优化、检索加速、并发处理,打造生产级 AI 系统 ✅ **前沿视野**: 了解多模态 AI、AI 原生应用等前沿技术,保持技术敏感度 --- ## 📈 职业发展 ### 能力提升 - ✅ **AI 工程化能力**: 能够将 AI 模型转化为可用的软件系统 - ✅ **架构设计思维**: 从代码层面提升到系统架构层面 - ✅ **性能优化技能**: 具备性能分析和调优能力 - ✅ **团队协作能力**: 掌握 AI 项目的团队协作和版本管理 - ✅ **问题解决能力**: 建立完整的问题诊断和解决思维 ### 职业机会 - 💼 **AI 工程师**: 掌握企业急需的 AI 开发技能,薪资涨幅 30-50% - 📈 **架构师**: 具备 AI 系统架构设计能力,向技术专家方向发展 - 🎓 **技术顾问**: 为企业提供 AI 转型咨询和技术培训 - 🚀 **创业者**: 利用 AI 技术创新,孵化自己的产品和服务 --- ## 📝 开发计划 本专栏正在连载中,源代码和文章将持续更新: - [x] ✅ 完成专栏内容规划(53 篇) - [ ] 🔄 第一部分:Spring AI 基础入门与环境搭建(第 001-010 篇) - [ ] ⏳ 第二部分:RAG 知识库构建核心技术(第 011-025 篇) - [ ] ⏳ 第三部分:Agent 智能体开发与复杂应用(第 026-040 篇) - [ ] ⏳ 第四部分:企业级架构设计与性能优化(第 041-050 篇) - [ ] ⏳ 第五部分:前沿技术与综合实战(第 051-053 篇) ### 配套资源 - 📂 **GitHub 仓库**: 提供完整源代码和示例项目 - 📖 **CSDN 专栏**: 《Spring AI 企业级应用开发实战》系列文章 - 💬 **技术交流群**: 加微信加入 Spring AI 学习社群 - 🎁 **福利资源**: Spring AI 速查手册、RAG 架构图集、Prompt 模板库 --- ## 👨‍💻 作者信息 **行者·全栈架构师** - CSDN 博客专家 - 专注 Spring 生态、微服务架构、AI 应用开发 - 微信公众号:【行者架构谈】 - 专栏创建时间:2026-04-01 - 预计完结时间:2026-09-30(连载中) --- ## 📄 开源协议 Apache License 2.0 ---
**如果这个项目对你有帮助,请给一个 ⭐ Star!** **🔥 53 篇干货,助你成为 AI 时代的技术领袖!** **欢迎关注公众号获取更多技术干货** [![公众号](https://img.shields.io/badge/公众号 - 行者架构谈-green.svg)](javascript:void(0)) [![CSDN](https://img.shields.io/badge/CSDN-博客-red.svg)](https://blog.csdn.net/qq_35366330?type=blog) **🎉 开启 Spring AI 学习之旅!** 立即订阅,不错过任何一篇精彩内容!