SpringAI Alibaba 如何配置双模型战略
创建 SpringBoot 项目
| 依赖 | 版本号 |
|---|---|
| Spring AI Alibaba | 1.0.0.2 |
| Spring AI | 1.0.0 |
| Spring Boot | 3.4.5 |
项目依赖
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>
<artifactId>spring-ai-alibaba-demo</artifactId>
<name>spring-ai-alibaba-demo</name>
<packaging>jar</packaging>
<description>SpringAI Alibaba 集成模块</description>
<properties>
<java.version>25</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-ai.version>1.0.0</spring-ai.version>
<spring-ai-alibaba.version>1.0.0.2</spring-ai-alibaba.version>
<spring-boot.version>3.4.5</spring-boot.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-bom</artifactId>
<version>${spring-ai-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>${spring-ai.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<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>
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-ollama</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter-memory-redis</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>5.2.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>配置多模型 application.yml
yaml
# 服务器端口
server:
port: 8080
spring:
application:
name: SpringAIAlibaba-RAG-Milvus
# DashScope 配置
ai:
dashscope:
api-key: sk-07ce6dxxxxxxxxx
chat:
model: qwen-plus
options:
temperature: 0.7
# Ollama 配置
ollama:
enabled: true
base-url: http://localhost:11434
chat:
model: qwen3:0.6b
options:
temperature: 0.7配置ChatClient
java
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* 配置 ChatClient
*
* @author 朔风
* @date 2026-03-31 15:53
*/
@Configuration
public class ChatConfig {
/***
* 远程 阿里云 模型
*
* @author 朔风
* @date 2026/3/31 16:01
* @param dashscopeChatModel dashscopeChatModel
* @return org.springframework.ai.chat.client.ChatClient
*/
@Bean
public ChatClient dashscopeChatClient(@Qualifier("dashscopeChatModel") ChatModel dashscopeChatModel) {
return ChatClient.builder(dashscopeChatModel)
.build();
}
/***
* 本机 ollama 模型
*
* @author 朔风
* @date 2026/3/31 16:01
* @param ollamaChatModel ollamaChatModel
* @return org.springframework.ai.chat.client.ChatClient
*/
@Bean
public ChatClient ollamaChatClient(@Qualifier("ollamaChatModel") ChatModel ollamaChatModel) {
return ChatClient.builder(ollamaChatModel)
.build();
}
}
朔风