news 2026/4/17 19:10:04

SpringBoot+SpringAI实战:30分钟搭建你的第一个智能应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SpringBoot+SpringAI实战:30分钟搭建你的第一个智能应用

SpringAI是Spring生态下的一个全新项目,核心目标是为Java开发者提供一套简单、统一的API,快速集成各类AI大模型能力,无需关注不同厂商API的差异。

核心优势:
统一API:对接不同大模型无需修改核心代码,切换模型像切换数据源一样简单
开箱即用:内置请求重试、超时控制、响应缓存等常用功能,减少重复编码
无缝集成Spring生态:完美兼容SpringBoot、Spring Cloud等,符合Java开发者的使用习惯
支持多场景:涵盖文本对话、图片生成、语音转文字、embedding向量生成等主流AI场景

本次实战我们以“对接OpenAI的ChatGPT模型”为例,开发一个简单的智能对话接口。后续会补充如何切换到国内大模型(如通义千问)。前置准备
JDK 17+(SpringAI部分特性依赖JDK 17)
Maven 3.6+
一个OpenAI API Key(从OpenAI官网申请,注意保存好,后续配置用)
开发工具:IDEA(推荐)

项目创建与依赖配置

使用Spring Initializr创建项目,选择Spring Boot 3.2.5版本,添加spring-boot-starter-web和Lombok依赖。手动在pom.xml中添加SpringAI OpenAI Starter:

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-openai-spring-boot-starter</artifactId><version>0.8.1</version></dependency>

配置文件设置

application.yml中配置OpenAI参数,建议将API Key存储在环境变量中:

spring:ai:openai:api-key:${OPENAI_API_KEY}chat:model:gpt-3.5-turbotemperature:0.7

核心代码实现

DTO层设计
@DatapublicclassChatRequest{@NotBlankprivateStringmessage;}@Data@BuilderpublicclassChatResponse{privateIntegercode;privateStringmsg;privateStringcontent;}
服务层实现
@Service@RequiredArgsConstructorpublicclassChatServiceImplimplementsChatService{privatefinalChatClientchatClient;@OverridepublicChatResponsechat(ChatRequestrequest){try{Stringresponse=chatClient.call(request.getMessage());returnChatResponse.builder().code(200).msg("Success").content(response).build();}catch(Exceptione){returnChatResponse.builder().code(500).msg(e.getMessage()).content("").build();}}}
控制层优化
@RestController@RequestMapping("/api/ai")@RequiredArgsConstructorpublicclassChatController{privatefinalChatServicechatService;@PostMapping("/chat")publicResponseEntity<ChatResponse>chat(@Valid@RequestBodyChatRequestrequest){returnResponseEntity.ok(chatService.chat(request));}}

异常处理增强

添加全局异常处理器:

@ControllerAdvicepublicclassGlobalExceptionHandler{@ExceptionHandler(Exception.class)publicResponseEntity<ChatResponse>handleException(Exceptione){returnResponseEntity.status(500).body(ChatResponse.builder().code(500).msg(e.getMessage()).build());}}

测试验证

创建测试类验证功能:

@SpringBootTest@AutoConfigureMockMvcclassChatControllerTest{@AutowiredprivateMockMvcmockMvc;@TestvoidtestChatEndpoint()throwsException{Stringrequest="{\"message\":\"Java有哪些特性?\"}";mockMvc.perform(post("/api/ai/chat").contentType(MediaType.APPLICATION_JSON).content(request)).andExpect(status().isOk()).andExpect(jsonPath("$.code").value(200));}}

性能优化建议

添加连接池配置提升性能:

spring:ai:openai:client:connect-timeout:5000read-timeout:30000

安全增强

建议在Controller添加速率限制:

@RateLimiter(value=10)// 每秒10次请求@PostMapping("/chat")publicResponseEntity<ChatResponse>chat(@Valid@RequestBodyChatRequestrequest){// ...}

国内模型切换示例

若要切换至通义千问,只需修改依赖和配置:

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-qwen-spring-boot-starter</artifactId><version>0.8.1</version></dependency>

对应配置调整为:

spring:ai:qwen:api-key:${QWEN_API_KEY}chat:model:qwen-turbo
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 17:40:06

Qwen2.5-7B教育应用:智能辅导系统搭建

Qwen2.5-7B教育应用&#xff1a;智能辅导系统搭建 1. 引言&#xff1a;大模型驱动教育智能化升级 1.1 教育场景的AI转型需求 随着个性化学习理念的普及&#xff0c;传统“一刀切”式教学模式已难以满足学生多样化的学习节奏与知识掌握水平。尤其是在课后辅导、作业批改、知识…

作者头像 李华
网站建设 2026/4/17 16:22:27

Qwen2.5-7B保姆级教程:从零开始部署指令调优模型详细步骤

Qwen2.5-7B保姆级教程&#xff1a;从零开始部署指令调优模型详细步骤 1. 引言 1.1 技术背景与学习目标 随着大语言模型&#xff08;LLM&#xff09;在自然语言处理、代码生成、多语言支持等领域的广泛应用&#xff0c;越来越多的开发者希望能够在本地或私有环境中部署高性能的…

作者头像 李华
网站建设 2026/4/17 5:27:38

Qwen2.5-7B多轮问答:上下文保持技术

Qwen2.5-7B多轮问答&#xff1a;上下文保持技术 1. 技术背景与问题提出 随着大语言模型在对话系统、智能客服、虚拟助手等场景的广泛应用&#xff0c;多轮对话中的上下文保持能力成为衡量模型实用性的关键指标。传统的对话系统往往受限于上下文长度或记忆机制设计不足&#x…

作者头像 李华
网站建设 2026/4/17 17:39:59

Qwen2.5-7B案例教程:智能客服知识库构建

Qwen2.5-7B案例教程&#xff1a;智能客服知识库构建 1. 引言 1.1 智能客服的演进与挑战 随着企业数字化转型加速&#xff0c;客户对服务响应速度和质量的要求日益提高。传统基于规则或关键词匹配的客服系统已难以应对复杂多变的用户问题。智能客服系统需要具备自然语言理解、…

作者头像 李华
网站建设 2026/4/17 17:39:57

Qwen2.5-7B音乐分析:乐理与作曲辅助

Qwen2.5-7B音乐分析&#xff1a;乐理与作曲辅助 1. 引言&#xff1a;大模型如何赋能音乐创作&#xff1f; 1.1 音乐生成的智能化演进 传统音乐创作依赖于作曲家的经验与灵感&#xff0c;而随着人工智能技术的发展&#xff0c;尤其是大语言模型&#xff08;LLM&#xff09;在自…

作者头像 李华
网站建设 2026/4/17 16:32:31

Qwen2.5-7B与Qwen2性能对比:编程任务执行效率实测

Qwen2.5-7B与Qwen2性能对比&#xff1a;编程任务执行效率实测 1. 背景与选型动机 随着大语言模型在软件开发、自动化脚本生成和代码补全等场景中的广泛应用&#xff0c;模型在编程任务上的执行效率与准确性已成为开发者选型的核心考量。阿里云推出的 Qwen 系列模型持续迭代&am…

作者头像 李华