Spring-AI 多模型接入实战:本地 deepseek + 阿里云百炼 + 硅基流动

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 接口测试

相关推荐
阿里云大数据AI技术几秒前
阿里云PAI推出InferX:Agent时代重塑企业专属的高保障SLO推理服务
人工智能·agent
Raas1001 分钟前
MAI Gateway(魔芋企业级AI网关)能力解析:AI网关支持OpenAI吗?AI网关核心功能详解
人工智能·网关·ai网关·mai gateway·企业级产品·独立团队
多多鼠4 分钟前
System Prompt 的“版本漂移”问题:从变更管理到 A/B 测试体系
开发语言·网络·人工智能·python·langchain
LuTshoes6 分钟前
spring ai 实战RAG(4)-模块化RAG
java·人工智能·spring
Thom5808 分钟前
【迅投 QMT】QMT如何实现布林带突破策略?Python指标与交易信号示例
人工智能·经验分享·量化交易·量化编程
m0_7345717612 分钟前
深入理解人工智能 chatGPT 基础设施与数据层 (Infrastructure & Data Layer)
人工智能
魔众15 分钟前
写歌、翻唱、可编辑乐谱,YuE2-3B 在 AIGCPanel 一键跑通
人工智能·开源
Python自动化直播19 分钟前
用 Python 爬虫给 AI 直播间做数据反馈机制
人工智能·python·ai·直播
DO_Community25 分钟前
DigitalOcean vs OpenRouter:2026 年 AI 模型路由对比
人工智能·agent·ai编程·agi
JJJennie77732 分钟前
大模型网关能做智能路由吗?MAI Gateway实战能力深度解读
人工智能·ai网关·企业ai治理·mai gateway