1. 引言
在当今AI应用开发中,多模型接入已成为企业级应用的标配需求。Spring-AI作为Spring生态中的AI集成框架,为开发者提供了统一、便捷的AI模型接入方案。本文将详细介绍如何使用Spring-AI同时接入三种不同类型的AI模型:本地部署的deepseek模型、阿里云百炼平台以及硅基流动(Silicon Flow)服务,实现灵活的多模型调用策略。
2. 环境准备
JDK:17 及以上版本
构建工具:Maven 3.6+ 或 Gradle
Spring Boot:3.4+(建议选用最新稳定版本)
3. 本地 deepseek 模型接入
3.1 本地模型部署启动
首先在本地部署deepseek模型服务(以Ollama为例):
bash
# 拉取deepseek模型(已经安装了的不用管)
ollama run deepseek-r1:1.5b
# 启动模型服务
ollama serve
3.2 项目依赖
首先创建一个Spring Boot项目,添加以下核心依赖:
xml
<properties>
<java.version>17</java.version>
<spring-ai.version>1.0.0-M6</spring-ai.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--Ollama 是一个开源的大型语言模型服务工具,旨在帮助用户快速在本地运行大模型。-->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<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>
3.3 配置文件
在application.yml中配置多模型接入参数:
yaml
spring:
ai:
ollama:
base-url: http://localhost:11434
chat:
model: deepseek-r1:1.5b
3.4 Spring-AI 接口
java
@RestController
@RequestMapping("/api")
public class ChatController {
private final ChatClient chatClient;
public ChatController(ChatClient.Builder chatClientBuilder) {
this.chatClient = chatClientBuilder.build();
}
@GetMapping("/chat")
public String chat(@RequestParam(value = "input") String input) {
return chatClient.prompt()
.user(input)
.call()
.content();
}
@GetMapping(value = "/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE + ";charset=UTF-8")
public ResponseEntity<Flux<String>> streamChat(@RequestParam String message) {
Flux<String> content = chatClient.prompt()
.user(message)
.stream()
.content();
return ResponseEntity.ok()
.contentType(MediaType.TEXT_EVENT_STREAM)
.body(content);
}
}
3.5 接口测试

4. 硅基流动接入

4.1 项目依赖、配置
xml
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-openai</artifactId>
<version>1.0.0</version>
</dependency>
<!--spring-ai-starter-model-openai 导不进去加入下面这个依赖-->
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
yaml
spring:
ai:
openai:
api-key: your-key
base-url: https://api.siliconflow.cn
chat:
options:
model: deepseek-ai/DeepSeek-V3.2
4.2 接口测试

5. 阿里云百炼接入
官方文档:https://java2ai.com/docs/overview

5.1 项目依赖、配置
xml
<!-- Spring AI Alibaba Agent Framework -->
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-agent-framework</artifactId>
<version>1.1.2.0</version>
</dependency>
<!-- DashScope ChatModel 支持(如果使用其他模型,请跳转 Spring AI 文档选择对应的 starter) -->
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
<version>1.1.2.0</version>
</dependency>
yaml
spring:
ai:
dashscope:
api-key: sk-
chat:
options:
model: qwen3.7-max
4.2 接口测试
