文章目录前言一、先破除你的心理障碍二、准备工作工欲善其事必先利其器2.1 环境检查清单2.2 项目初始化三、Hello AI World你的第一个智能接口3.1 配置文件告诉Spring你的AI钥匙在哪3.2 核心代码一个Controller搞定3.3 代码解剖到底发生了什么四、进阶玩法让AI不只是聊天4.1 系统提示词System Prompt给AI立规矩4.2 流式响应让AI打字机效果实时输出4.3 换个便宜又好使的模型DeepSeek R1集成五、实战案例AI代码审查助手六、避坑指南老鸟踩过的坑你别踩6.1 API Key管理别把钥匙挂门上6.2 超时设置AI也会卡壳6.3 Token计费别让AI把你的信用卡刷爆6.4 本地模型没网也能跑AI七、未来展望Java在AI时代的生态位结语现在动手永远不晚无意间发现了一个CSDN大神的人工智能教程忍不住分享一下给大家。很通俗易懂重点是还非常风趣幽默像看小说一样。床送门放这了 http://blog.csdn.net/jiangjunshow前言说实话看到Python程序员天天在那炫AI应用咱们Javaer心里多少有点酸。但你发现没有2025年这风向变了——Spring官方亲自下场搞了个Spring AI直接把AI开发门槛砍到了地平线以下。今天这篇不搞虚的就教你用最熟悉的Spring Boot30分钟搞出人生第一个AI程序。一、先破除你的心理障碍很多Java老铁一听说AI开发脑子里立马浮现出一堆Python代码和数学公式觉得这玩意儿是Python的专属领地。这话放在2023年可能还沾点边但到了2026年纯属老黄历了。Spring AI这个项目的定位特别有意思官方管它叫Spring Data for AI。啥意思呢就像当年Spring Data让咱们操作数据库不用写一堆JDBC样板代码一样Spring AI现在让你调用GPT-4、DeepSeek这些大模型也不用去啃那些乱七八糟的REST API文档。它给所有主流AI服务商OpenAI、Azure、Hugging Face、DeepSeek甚至本地的Ollama套了个统一的皮你学到的代码可以在不同模型之间无缝切换。说白了你现在用Java写AI应用就跟用Spring Boot写CRUD一样自然。不信往下看。二、准备工作工欲善其事必先利其器2.1 环境检查清单开始之前先确认你的装备库JDK 17Spring AI最低要求Java 17别拿那套公司还在用JDK 8的说辞来搪塞2025年了该升级了。Maven 3.6构建工具老朋友了。IDEIntelliJ IDEA推荐或者Eclipse都行。API Key去OpenAI官网或者DeepSeek申请个API Key。DeepSeek现在便宜得离谱R1模型每百万token才收0.55美元跟白送差不多。2.2 项目初始化最爽的方式就是直接去 start.spring.io在依赖项里勾上Spring AI。如果你那网不好手动改pom.xml也行org.springframework.boot spring-boot-starter-web org.springframework.ai spring-ai-openai-spring-boot-starter 1.0.0-SNAPSHOT这里有个小细节要注意Spring AI的版本迭代挺快2025年的稳定版已经到了1.0.0级别但Maven中央仓库可能还没完全同步有时候需要加上Spring的里程碑仓库配置。三、Hello AI World你的第一个智能接口咱们不搞那些先讲原理再上代码的老套路直接上手跑通再回头解释。这就像学骑车先蹬起来再说理论后面补。3.1 配置文件告诉Spring你的AI钥匙在哪在application.properties里加上这几行spring.ai.openai.api-key${OPENAI_API_KEY:your-key-here} spring.ai.openai.chat.options.modelgpt-4o-mini spring.ai.openai.chat.options.temperature0.7看到那个temperature0.7没这玩意儿叫温度控制AI的创造力。值越大接近1AI越天马行空值越小接近0AI越循规蹈矩。就像你跟朋友聊天0.7相当于微醺状态既有逻辑又不死板。3.2 核心代码一个Controller搞定新建一个ChatController.java代码短得让人怀疑人生RestControllerRequestMapping(/ai)publicclassChatController{privatefinalChatClientchatClient;publicChatController(ChatClient.BuilderchatClientBuilder){this.chatClientchatClientBuilder.build();}GetMapping(/chat)publicStringchat(RequestParamStringmessage){returnchatClient.prompt().user(message).call().content();}}就这几行你已经搞定了一个完整的AI聊天接口。启动应用浏览器里输入http://localhost:8080/ai/chat?message你好Java和AI能结合吗你会看到AI秒回一段人话。3.3 代码解剖到底发生了什么可能有老铁要问了“这就完了我 RestTemplate 呢我 HTTP 请求头呢我 JSON 解析呢”这就是Spring AI的魔法所在。ChatClient这个接口把底层所有脏活累活都包了建立连接、认证鉴权、序列化反序列化、错误重试全都自动搞定。你看到的prompt()就是发起对话user(message)就是用户说了啥call()就是呼叫AI大脑content()就是把AI的回答给我。这种抽象层次就跟当年Spring Data JPA让你不用写SQL一样舒服。四、进阶玩法让AI不只是聊天4.1 系统提示词System Prompt给AI立规矩现在的AI就是个聪明但有点皮的孩子你需要给它设定角色。修改一下代码GetMapping(/expert)publicStringexpertChat(RequestParamStringquestion){returnchatClient.prompt().system(你是一位拥有10年经验的Java架构师回答问题时要给出代码示例并解释性能优化点。).user(question).call().content();}看到那个system()没这就是在给AI立人设。就像你入职新公司HR会给你发一本员工手册告诉你该怎么做事一样system prompt就是AI的员工手册。4.2 流式响应让AI打字机效果实时输出上面的例子是等AI全部想完了再一次性返回用户体验有点差。改成流式输出GetMapping(value/stream,producesMediaType.TEXT_EVENT_STREAM_VALUE)publicFluxstreamChat(RequestParamStringmessage){returnchatClient.prompt().user(message).stream().content();}这里返回的是FluxSpring WebFlux的响应式流。前端接收到的就是逐字逐句的打字机效果跟ChatGPT网页版那个感觉一模一样。4.3 换个便宜又好使的模型DeepSeek R1集成OpenAI的API调用起来简单但贵啊。咱们换成国产之光DeepSeek R1推理能力不输GPT-4价格却是零头。只需要改配置代码完全不动spring.ai.openai.chat.base-urlhttps://api.deepseek.com spring.ai.openai.chat.api-keyyour-deepseek-key spring.ai.openai.chat.options.modeldeepseek-r1Spring AI的设计哲学就是一套代码处处运行。你之前写的ChatController不需要改任何一个字母自动就能调用DeepSeek的API。这种 vendor lock-in 的解放感用过的人都知道有多爽。五、实战案例AI代码审查助手光聊天没意思咱们搞个实用的——让AI帮你Review代码。RestControllerRequestMapping(/code-review)publicclassCodeReviewController{privatefinalChatClientchatClient;publicCodeReviewController(ChatClient.Builderbuilder){this.chatClientbuilder.build();}PostMapping(/review)publicStringreviewCode(RequestBodyStringcode){Stringprompt 请对以下Java代码进行审查重点关注 1. 潜在的NPE风险 2. 线程安全问题 3. 性能优化建议 4. 代码规范遵循阿里巴巴Java开发手册 代码 %s .formatted(code);returnchatClient.prompt().system(你是一位严格的Java代码审查专家说话直接不绕弯子。).user(prompt).call().content();}}前端传一段代码过来AI自动给你找Bug、提建议。这东西集成到CI/CD流程里直接替代初级CRCode Review岗位让你专注于架构设计。六、避坑指南老鸟踩过的坑你别踩6.1 API Key管理别把钥匙挂门上千万别把application.properties里的API Key写死然后提交到GitHub。2025年了用环境变量或者Spring Cloud Vault。本地开发可以用.env文件配合spring-dotenv生产环境直接用K8s Secret或者云厂商的密钥管理服务。6.2 超时设置AI也会卡壳大模型偶尔抽风响应特别慢。记得在application.properties里加上spring.ai.openai.chat.options.timeout30s不然你的用户等AI等到怀疑人生最后报个504网关超时体验极差。6.3 Token计费别让AI把你的信用卡刷爆OpenAI和DeepSeek都是按token可以粗略理解为字数收费的。上线前一定要做成本估算。比如GPT-4o-mini输入1百万token才15美分但如果你搞个死循环去轮询账单照样能吓死你。生产环境务必加上限流Rate Limiting。6.4 本地模型没网也能跑AI如果你担心数据隐私或者想省钱可以用Ollama在本地跑模型。Spring AI也支持把配置改成spring.ai.ollama.base-urlhttp://localhost:11434 spring.ai.ollama.chat.options.modelqwen:7b这样你的数据不出内网适合金融、医疗这种敏感行业。七、未来展望Java在AI时代的生态位写到这儿可能有老铁要问“学Python搞AI的人那么多Java还有戏吗”太有戏了。企业级应用的核心是什么是稳定性、可维护性、生态成熟度。Python搞原型确实快但到了生产环境高并发、事务管理、监控运维还是Java的天下。Spring AI的出现其实是让Java补上了最后一块拼图——现在你可以在一个Spring Boot应用里既处理传统的订单支付流程又调用AI做智能客服所有事务、安全、日志治理都是同一套体系。再说了2025年的AI开发早就过了手搓神经网络的阶段现在是拼积木的时代。Java程序员的优势在于工程化能力而这种能力在AI落地阶段也就是现在恰恰是最稀缺的。结语现在动手永远不晚看完这篇你应该已经心里有数了Java入坑AI门槛真没那么高。Spring AI把该封装的都封装好了你要做的就是迈出第一步——把上面那个ChatController跑起来改改prompt看看AI怎么回你。记住AI开发不是什么玄学本质上就是发请求、收响应、做处理跟你调用第三方支付接口没什么两样。区别在于这个第三方是个智商超高的话痨。代码都给你贴这儿了环境配置也讲清楚了现在关上这篇文章打开IDEA开始写你的第一行AI代码吧。遇到问题回来评论区留言咱们Javaer抱团取暖不能让Python那帮人独美。
零基础Java入门AI,看完这篇就能写第一个AI程序
文章目录前言一、先破除你的心理障碍二、准备工作工欲善其事必先利其器2.1 环境检查清单2.2 项目初始化三、Hello AI World你的第一个智能接口3.1 配置文件告诉Spring你的AI钥匙在哪3.2 核心代码一个Controller搞定3.3 代码解剖到底发生了什么四、进阶玩法让AI不只是聊天4.1 系统提示词System Prompt给AI立规矩4.2 流式响应让AI打字机效果实时输出4.3 换个便宜又好使的模型DeepSeek R1集成五、实战案例AI代码审查助手六、避坑指南老鸟踩过的坑你别踩6.1 API Key管理别把钥匙挂门上6.2 超时设置AI也会卡壳6.3 Token计费别让AI把你的信用卡刷爆6.4 本地模型没网也能跑AI七、未来展望Java在AI时代的生态位结语现在动手永远不晚无意间发现了一个CSDN大神的人工智能教程忍不住分享一下给大家。很通俗易懂重点是还非常风趣幽默像看小说一样。床送门放这了 http://blog.csdn.net/jiangjunshow前言说实话看到Python程序员天天在那炫AI应用咱们Javaer心里多少有点酸。但你发现没有2025年这风向变了——Spring官方亲自下场搞了个Spring AI直接把AI开发门槛砍到了地平线以下。今天这篇不搞虚的就教你用最熟悉的Spring Boot30分钟搞出人生第一个AI程序。一、先破除你的心理障碍很多Java老铁一听说AI开发脑子里立马浮现出一堆Python代码和数学公式觉得这玩意儿是Python的专属领地。这话放在2023年可能还沾点边但到了2026年纯属老黄历了。Spring AI这个项目的定位特别有意思官方管它叫Spring Data for AI。啥意思呢就像当年Spring Data让咱们操作数据库不用写一堆JDBC样板代码一样Spring AI现在让你调用GPT-4、DeepSeek这些大模型也不用去啃那些乱七八糟的REST API文档。它给所有主流AI服务商OpenAI、Azure、Hugging Face、DeepSeek甚至本地的Ollama套了个统一的皮你学到的代码可以在不同模型之间无缝切换。说白了你现在用Java写AI应用就跟用Spring Boot写CRUD一样自然。不信往下看。二、准备工作工欲善其事必先利其器2.1 环境检查清单开始之前先确认你的装备库JDK 17Spring AI最低要求Java 17别拿那套公司还在用JDK 8的说辞来搪塞2025年了该升级了。Maven 3.6构建工具老朋友了。IDEIntelliJ IDEA推荐或者Eclipse都行。API Key去OpenAI官网或者DeepSeek申请个API Key。DeepSeek现在便宜得离谱R1模型每百万token才收0.55美元跟白送差不多。2.2 项目初始化最爽的方式就是直接去 start.spring.io在依赖项里勾上Spring AI。如果你那网不好手动改pom.xml也行org.springframework.boot spring-boot-starter-web org.springframework.ai spring-ai-openai-spring-boot-starter 1.0.0-SNAPSHOT这里有个小细节要注意Spring AI的版本迭代挺快2025年的稳定版已经到了1.0.0级别但Maven中央仓库可能还没完全同步有时候需要加上Spring的里程碑仓库配置。三、Hello AI World你的第一个智能接口咱们不搞那些先讲原理再上代码的老套路直接上手跑通再回头解释。这就像学骑车先蹬起来再说理论后面补。3.1 配置文件告诉Spring你的AI钥匙在哪在application.properties里加上这几行spring.ai.openai.api-key${OPENAI_API_KEY:your-key-here} spring.ai.openai.chat.options.modelgpt-4o-mini spring.ai.openai.chat.options.temperature0.7看到那个temperature0.7没这玩意儿叫温度控制AI的创造力。值越大接近1AI越天马行空值越小接近0AI越循规蹈矩。就像你跟朋友聊天0.7相当于微醺状态既有逻辑又不死板。3.2 核心代码一个Controller搞定新建一个ChatController.java代码短得让人怀疑人生RestControllerRequestMapping(/ai)publicclassChatController{privatefinalChatClientchatClient;publicChatController(ChatClient.BuilderchatClientBuilder){this.chatClientchatClientBuilder.build();}GetMapping(/chat)publicStringchat(RequestParamStringmessage){returnchatClient.prompt().user(message).call().content();}}就这几行你已经搞定了一个完整的AI聊天接口。启动应用浏览器里输入http://localhost:8080/ai/chat?message你好Java和AI能结合吗你会看到AI秒回一段人话。3.3 代码解剖到底发生了什么可能有老铁要问了“这就完了我 RestTemplate 呢我 HTTP 请求头呢我 JSON 解析呢”这就是Spring AI的魔法所在。ChatClient这个接口把底层所有脏活累活都包了建立连接、认证鉴权、序列化反序列化、错误重试全都自动搞定。你看到的prompt()就是发起对话user(message)就是用户说了啥call()就是呼叫AI大脑content()就是把AI的回答给我。这种抽象层次就跟当年Spring Data JPA让你不用写SQL一样舒服。四、进阶玩法让AI不只是聊天4.1 系统提示词System Prompt给AI立规矩现在的AI就是个聪明但有点皮的孩子你需要给它设定角色。修改一下代码GetMapping(/expert)publicStringexpertChat(RequestParamStringquestion){returnchatClient.prompt().system(你是一位拥有10年经验的Java架构师回答问题时要给出代码示例并解释性能优化点。).user(question).call().content();}看到那个system()没这就是在给AI立人设。就像你入职新公司HR会给你发一本员工手册告诉你该怎么做事一样system prompt就是AI的员工手册。4.2 流式响应让AI打字机效果实时输出上面的例子是等AI全部想完了再一次性返回用户体验有点差。改成流式输出GetMapping(value/stream,producesMediaType.TEXT_EVENT_STREAM_VALUE)publicFluxstreamChat(RequestParamStringmessage){returnchatClient.prompt().user(message).stream().content();}这里返回的是FluxSpring WebFlux的响应式流。前端接收到的就是逐字逐句的打字机效果跟ChatGPT网页版那个感觉一模一样。4.3 换个便宜又好使的模型DeepSeek R1集成OpenAI的API调用起来简单但贵啊。咱们换成国产之光DeepSeek R1推理能力不输GPT-4价格却是零头。只需要改配置代码完全不动spring.ai.openai.chat.base-urlhttps://api.deepseek.com spring.ai.openai.chat.api-keyyour-deepseek-key spring.ai.openai.chat.options.modeldeepseek-r1Spring AI的设计哲学就是一套代码处处运行。你之前写的ChatController不需要改任何一个字母自动就能调用DeepSeek的API。这种 vendor lock-in 的解放感用过的人都知道有多爽。五、实战案例AI代码审查助手光聊天没意思咱们搞个实用的——让AI帮你Review代码。RestControllerRequestMapping(/code-review)publicclassCodeReviewController{privatefinalChatClientchatClient;publicCodeReviewController(ChatClient.Builderbuilder){this.chatClientbuilder.build();}PostMapping(/review)publicStringreviewCode(RequestBodyStringcode){Stringprompt 请对以下Java代码进行审查重点关注 1. 潜在的NPE风险 2. 线程安全问题 3. 性能优化建议 4. 代码规范遵循阿里巴巴Java开发手册 代码 %s .formatted(code);returnchatClient.prompt().system(你是一位严格的Java代码审查专家说话直接不绕弯子。).user(prompt).call().content();}}前端传一段代码过来AI自动给你找Bug、提建议。这东西集成到CI/CD流程里直接替代初级CRCode Review岗位让你专注于架构设计。六、避坑指南老鸟踩过的坑你别踩6.1 API Key管理别把钥匙挂门上千万别把application.properties里的API Key写死然后提交到GitHub。2025年了用环境变量或者Spring Cloud Vault。本地开发可以用.env文件配合spring-dotenv生产环境直接用K8s Secret或者云厂商的密钥管理服务。6.2 超时设置AI也会卡壳大模型偶尔抽风响应特别慢。记得在application.properties里加上spring.ai.openai.chat.options.timeout30s不然你的用户等AI等到怀疑人生最后报个504网关超时体验极差。6.3 Token计费别让AI把你的信用卡刷爆OpenAI和DeepSeek都是按token可以粗略理解为字数收费的。上线前一定要做成本估算。比如GPT-4o-mini输入1百万token才15美分但如果你搞个死循环去轮询账单照样能吓死你。生产环境务必加上限流Rate Limiting。6.4 本地模型没网也能跑AI如果你担心数据隐私或者想省钱可以用Ollama在本地跑模型。Spring AI也支持把配置改成spring.ai.ollama.base-urlhttp://localhost:11434 spring.ai.ollama.chat.options.modelqwen:7b这样你的数据不出内网适合金融、医疗这种敏感行业。七、未来展望Java在AI时代的生态位写到这儿可能有老铁要问“学Python搞AI的人那么多Java还有戏吗”太有戏了。企业级应用的核心是什么是稳定性、可维护性、生态成熟度。Python搞原型确实快但到了生产环境高并发、事务管理、监控运维还是Java的天下。Spring AI的出现其实是让Java补上了最后一块拼图——现在你可以在一个Spring Boot应用里既处理传统的订单支付流程又调用AI做智能客服所有事务、安全、日志治理都是同一套体系。再说了2025年的AI开发早就过了手搓神经网络的阶段现在是拼积木的时代。Java程序员的优势在于工程化能力而这种能力在AI落地阶段也就是现在恰恰是最稀缺的。结语现在动手永远不晚看完这篇你应该已经心里有数了Java入坑AI门槛真没那么高。Spring AI把该封装的都封装好了你要做的就是迈出第一步——把上面那个ChatController跑起来改改prompt看看AI怎么回你。记住AI开发不是什么玄学本质上就是发请求、收响应、做处理跟你调用第三方支付接口没什么两样。区别在于这个第三方是个智商超高的话痨。代码都给你贴这儿了环境配置也讲清楚了现在关上这篇文章打开IDEA开始写你的第一行AI代码吧。遇到问题回来评论区留言咱们Javaer抱团取暖不能让Python那帮人独美。