1. 创建父项目

2. 配置依赖版本
XML
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<groupId>com.ting.study</groupId>
<artifactId>SpringAiAlibaba</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>SpringAiAlibaba</name>
<description>SpringAiAlibaba</description>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>21</java.version>
<spring-boot.version>3.5.14</spring-boot.version>
<spring.cloud.version>2025.0.0</spring.cloud.version>
<spring.cloud.alibaba.version>2025.0.0.0</spring.cloud.alibaba.version>
<spring-ai.version>1.1.2</spring-ai.version>
<springAIAlibaba.version>1.1.2.0</springAIAlibaba.version>
<springAIAlibaba.extensions.version>1.1.2.1</springAIAlibaba.extensions.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- spring boot-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- AI 主 BOM -->
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-bom</artifactId>
<version>${springAIAlibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- AI 扩展 BOM -->
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-extensions-bom</artifactId>
<version>${springAIAlibaba.extensions.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Spring AI BOM -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>${spring-ai.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- ====================== 微服务相关 ====================== -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring.cloud.alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
3. 创建服务

4. 编写配置与依赖
XML
server:
port: 8001
#大模型对话中文乱码UTF8处理
servlet:
encoding:
enabled: true
force: true
charset: UTF-8
spring:
application:
name: SAA-01HelloWorld
# Spring AI 核心配置(对接阿里云百炼DashScope大模型)
ai:
#阿里云通义千问专属配置
dashscope:
# 🔥 阿里云API-KEY(必须,身份鉴权,从阿里云百炼平台获取)
api-key: sk-d237a698e877577a8
# ---------------- 聊天对话模型配置 ----------------
chat:
# 模型调用参数配置
options:
# 指定使用的模型名称(必须正确,否则调用失败)
model: qwen-plus
# SDK调用的基础地址(兼容OpenAI格式接口,固定写法)
base-url: https://dashscope.aliyuncs.com/
注意:API-KEY通常不会明文配置,可以配置在系统环境变量中:

以如下形式使用

XML
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ting.study</groupId>
<artifactId>SpringAiAlibaba</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>SAA-01HelloWorld</artifactId>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
</dependency>
</dependencies>
</project>
5. 使用示例
创建配置类:
java
package com.ting.saa01.config;
import com.alibaba.cloud.ai.dashscope.api.DashScopeApi;
import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatModel;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SaaLLMConfig {
@Value("${spring.ai.dashscope.api-key}")
public String apiKey;
@Bean
public DashScopeApi dashScopeApi() {
return DashScopeApi.builder().apiKey(apiKey).build();
}
}
DashScopeApi = 客户端连接工具(身份证 + 通行证)代表阿里云百炼的 HTTP 客户端
- 只干一件事:发送 请求
- 携带你的 apiKey(身份凭证)
- 管理 请求地址、请求头、认证
- 不关心你用什么模型
- 不关心你问什么问题
- 它就是一个通用的请求工具
使用示例:
java
@RestController
public class ChatHelloController {
@Autowired
ChatModel chatModel;
/**
* 通用调用
* @param msg
* @return
*/
@GetMapping("/hello/call")
public String call(@RequestParam(name = "msg", defaultValue = "你是谁") String msg) {
String result = chatModel.call(msg);
return result;
}
/**
* 流式返回
* @param msg
* @return
*/
@GetMapping("/hello/stream")
public Flux<String> stream(@RequestParam(name = "msg", defaultValue = "你是谁") String msg) {
return chatModel.stream(msg);
}
}

ChatModel = 对话模型(真正用来聊天的对象)
- 调用 DashScopeApi 发请求
- 组装对话消息
- 解析 AI 返回的结果
6.切换其它大模型
百炼平台也兼容了第三方大模型,我们可以通过,同一套api进行调用:


这里我们使用质谱ai的大模型,只需修改模型名称即可:

7. 如何使用百炼平台不支持的大模型
如果要使用百炼平台不支持的代码需要使用原生Spring AI接口:
引入依赖:
XML
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
</dependency>
配置:
java
spring:
application:
name: SAA-01HelloWorld
# # Spring AI 核心配置(对接阿里云百炼DashScope大模型)
ai:
dashscope:
# SDK调用的基础地址(兼容OpenAI格式接口,固定写法)
base-url: https://dashscope.aliyuncs.com/
# 阿里云API-KEY(必须,身份鉴权,从阿里云百炼平台获取)
api-key: ${AliQWenAPIKey}
# ---------------- 聊天对话模型配置 ----------------
chat:
# 模型调用参数配置
options:
# 指定使用的模型名称(必须正确,否则调用失败)
model: glm-5.1
#spring ai
openai:
base-url: https://ark.cn-beijing.volces.com/api
api-key: ${doubaoAPIKey}
chat:
options:
model: doubao-seed-2-0-pro-260215
此时要注意,spring ai alibaba 和 spring ai 都会实现 CharModel接口,会导致Spring容器中有两个bean:

需要指定使用哪一个:
java
@Autowired
@Qualifier("openAiChatModel")
ChatModel chatModel;