Spring AI (第一章) 如何接入AI大模型
文章目录
- Spring AI (第一章) 如何接入AI大模型
- 一、Spring AI开发项目的注意事项
- 1.1 Spring Boot版本问题
- 1.2 Spring AI依赖版本问题
- 1.3 模型选择(以阿里云百炼为例)
- 二、获取API Key
- 三、章节目的
- 四、新建项目
- 四、简单的模型对话
- 4.1 导入依赖
- 4.2 配置文件
- 4.3 构建大模型聊天对象代码
- 4.4 聊天对象测试代码
- 五、相关的资源文档
- 5.1 DashScope(阿里灵积)
- 5.2 Spring AI Alibaba
- 5.3 文档的作用
一、Spring AI开发项目的注意事项
1.1 Spring Boot版本问题
- 建议使用 Spring Boot 3.4.x(最低 3.0+)。
- 选择稳定小版本,避免与 Spring AI 的兼容性问题;升级时先看 Spring AI Release Notes/兼容矩阵。
1.2 Spring AI依赖版本问题
- 学习/快速接入:建议用spring-ai-alibaba(对阿里百炼做了易用封装)。
- Spring AI 相关组件版本强相关,尽量使用官方推荐的成套版本;不要随意“只升一个”。
- 不同小版本 API 可能不兼容,升级要做编译/运行双验证,关注弃用项与包名迁移。
- 用 BOM 锁版本,统一管理依赖树,减少冲突;遇到冲突优先排除传递依赖而不是硬升。
- Spring AI框架相关依赖的版本号都是环环相扣、新手最好不要随意改动版本号、按照教程推荐的来;
1.3 模型选择(以阿里云百炼为例)
- 选型关注点:上下文窗口、价格、延迟、工具调用/函数调用支持、流式输出、对齐策略。
- 阿里百炼大模型广场基本上市面上常见的多模态、图片生成、视频生成、语音生成都支持;
二、获取API Key
后续在代码接入大模型需要配置API Key、平台对每个用户提供了免费的token额度
三、章节目的
- 引入模型、简单的对话、调通阿里云大模型API并拿到响应;
四、新建项目
Server Url:https://start.spring.io
选择Spring Boot 3.0以上的版本
项目新建完成
Maven仓库、推荐另外新建一个3.8以上的版本
四、简单的模型对话
4.1 导入依赖
基础依赖
<!-- 提供构建Web应用所需的核心组件,包括Spring MVC与内置Tomcat服务器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 单元测试依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>阿里巴巴 百炼 灵积 大模型
<!-- 阿里巴巴 百炼 灵积 大模型依赖 2.19.1 --><dependency><groupId>com.alibaba</groupId><artifactId>dashscope-sdk-java</artifactId><!-- 请将 'version' 替换为最新版本号:https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java --><version>2.19.1</version></dependency><!-- 引入阿里巴巴的 spring-ai-alibaba 依赖更好的兼容spring ai 接入大模型 --><dependency><groupId>com.alibaba.cloud.ai</groupId><artifactId>spring-ai-alibaba-starter</artifactId><version>1.0.0-M6.1</version><!-- 排除nacos-config依赖、防止控制台打印警告 --><exclusions><exclusion><artifactId>logback-classic</artifactId><groupId>ch.qos.logback</groupId></exclusion><exclusion><groupId>com.alibaba.cloud</groupId><artifactId>spring-alibaba-nacos-config</artifactId></exclusion></exclusions></dependency>4.2 配置文件
配置文件:application.yml
spring:application:name:exi-ai-agentprofiles:active:local# 激活application-local.yml配置文件server:port:8799# 后端应用端口servlet:context-path:/api# 设置API接口前缀配置文件:application-local.yml
spring:application:name:exi-ai-agentai:dashscope:api-key:AI_DASHSCOPE_API_KEY# 阿里百炼Keychat:options:model:qwen3-max# qwen-plus、选择百炼支持的模型# 增加超时时间timeout:60000# 60秒connection-timeout:30000# 30秒read-timeout:60000# 60秒4.3 构建大模型聊天对象代码
importlombok.extern.slf4j.Slf4j;importorg.springframework.ai.chat.client.ChatClient;importorg.springframework.ai.chat.model.ChatModel;importorg.springframework.ai.chat.model.ChatResponse;importorg.springframework.stereotype.Component;/** * 初始化大模型聊天对象 */@Component@Slf4jpublicclassChatApp{/** * ChatClient 是 Spring AI 提供的一个轻量级客户端,基于 ChatModel 的上层封装,用于构建、发送聊天请求并处理大模型的回复。 * * 核心能力 * 易用封装: 基于 ChatModel 的 builder API,减少直接拼 JSON 的负担。 * 消息结构: 支持 system、user、assistant 多角色消息。 * 上下文与记忆: 可接入如 MessageChatMemoryAdvisor 之类的记忆/拦截器。 * 工具/函数调用: 可注册工具以启用函数调用(不同模型支持度不同)。 * 流式响应: 支持逐 token/段落流式消费。 * 可组合: 通过拦截器/Advisor 叠加安全、重试、日志等能力。 */privatefinalChatClientchatClient;publicChatApp(ChatModeldashscopeChatModel){// 使用阿里的dashscopeChatModel初始化大模型聊天对象chatClient=ChatClient.builder(dashscopeChatModel).build();}/** * 通过chatClient根据用户参数进行答复 * @param message * @return */publicStringdoChat(Stringmessage){// 模型返回的所有内容(包括回答文本和元信息)都会被封装进一个 ChatResponse 对象中。ChatResponsechatResponse=chatClient.prompt().user(message)// 用户消息.call()// .call() 阻塞式的响应.chatResponse();// 大模型响应的文本内容Stringcontent=chatResponse.getResult().getOutput().getText();// token 用量统计varusage=chatResponse.getMetadata().getUsage();log.info("【对话请求】用户消息:{}",message);log.info("【用量统计】tokens {}",usage);log.info("【模型响应】内容:{}",content);returncontent;}}4.4 聊天对象测试代码
@SpringBootTestclassChatAppTest{/** * @Resource 注解的作用是先根据字段名后根据类型 来自动匹配注入对应的 Bean */@ResourceprivateChatAppchatApp;@TestvoiddoChat(){Stringmessage="你好我叫小洲";Stringanswer=chatApp.doChat(message);}}测试结果
五、相关的资源文档
5.1 DashScope(阿里灵积)
官方文档
1、阿里云百炼平台SDK官方文档:https://help.aliyun.com/zh/model-studio/install-sdk
2、通义千问(DashScope)示例文档:https://bailian.console.aliyun.com/?tab=api#/api/?type=model&url=2712576
5.2 Spring AI Alibaba
1、Spring AI Alibaba官方文档支持DashScope更好接入Spring AI框架:https://java2ai.com/
5.3 文档的作用
- 在调试新功能的过程中遇到问题、可以查阅官方文档、查看每个API的示例代码;
- 可以根据应用场景去官方的模型广场选择合适的大模型;