当前位置: 首页 > news >正文

Spring-AI 接入(本地大模型 deepseek + 阿里云百炼 + 硅基流动)

引言​

在人工智能技术迅猛发展的浪潮中,将智能化能力无缝融入企业级应用已成为提升产品竞争力的关键。Spring AI 作为 Spring 家族的新成员,为 Java 开发者带来了标准化、低门槛的 AI 集成体验。下面将介绍如何使用 Spring AI 框架分别接入本地模型 deepseek ,阿里云百炼平台 ,硅基流动。


一、环境准备

1. 环境要求

  • ​JDK​​:17 及以上版本
  • ​构建工具​​:Maven 3.6+ 或 Gradle
  • ​Spring Boot​​:3.4+(建议选用最新稳定版本)

2. 所需下载应用

  • olloma(用户运行大模型语言):https://ollama.com
  • deepSeek 语言模型:下载 DeepSeek 模型 | DeepSeek v3

3. 获取阿里云百炼平台和硅基流动所需的密钥 api-key

  • 阿里云:大模型服务平台百炼控制台

  • 硅基流动:SiliconCloud

二、本地大模型 deepseek 接入

1、将下载的 deepseek-R1 本地模型部署在 ollama 上运行起来,没有部署过的可以参考:本地用ollama部署DeepSeek大模型_ollama 安装 1.5模型-CSDN博客

2、创建一个 spring-boot 项目,引入以下依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<!-- ollama -->
<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-ollama</artifactId>
</dependency>

 

<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><releases><enabled>false</enabled></releases></repository>
</repositories>

3、配置 application.yml 文件,其中 base-url 就是本地大模型在 ollama 运行的服务地址,model 填在 deepseek 下载的模型,这里下载的是 deepseek-r1:14b

spring:application:name: ai-demoai:ollama:base-url: http://localhost:11434chat:options:model: deepseek-r1:14b

4、编写 java 代码

@RestController
@RequestMapping("/ai")
public class ChatController {private final ChatClient chatClient;public ChatController(ChatClient.Builder chatClient) {this.chatClient = chatClient.build();}@GetMapping("/chat")public String chat(@RequestParam(value = "input") String input) {return chatClient.prompt().user(input).call().content();}
}

5、跑起来测试,大功告成

 三、阿里云百炼平台接入

1、首先获取到之前创建的密钥,将其放在 java 运行环境变量里面

​​

2、引入以下依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<!-- spring-ai alibaba -->
<dependency><groupId>com.alibaba.cloud.ai</groupId><artifactId>spring-ai-alibaba-starter</artifactId><version>1.0.0-M5.1</version>
</dependency>
<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><releases><enabled>false</enabled></releases></repository>
</repositories>

3、配置 application.yml 文件,其中:

  • api-key 为当前平台密钥,可以直接从平台复制过来粘贴上去,但是不推荐,建议使用环境变量:${AI_DASHSCOPE_API_KEY}
  • base-url 阿里云线上服务地址
  • model 这里填的是通义千问,可以根据官网所有的模型进行切换
spring:application:name: ai-demoai:dashscope:api-key: ${AI_DASHSCOPE_API_KEY}base-url: https://dashscope.aliyuncs.com/compatible-mode/v1chat:options:model: qwen-max

4、编写 java 代码

@RestController
@RequestMapping("/ai")
public class ChatController {private final ChatClient chatClient;public ChatController(ChatClient.Builder chatClient) {this.chatClient = chatClient.build();}@GetMapping("/chat")public String chat(@RequestParam(value = "input") String input) {return chatClient.prompt().user(input).call().content();}
}

5、跑起来测试,大功告成

四、硅基流动(open-api)平台接入

1、首先获取到硅基流动创建的密钥,将其放在 java 运行环境变量里面

​​

2、引入以下依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<!-- Spring AI OpenAI Starter -->
<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>
<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><releases><enabled>false</enabled></releases></repository>
</repositories>

3、配置 application.yml 文件,其中:

  • 同样,api-key 为硅基流动平台密钥,可以直接从平台复制过来粘贴上去,但是不推荐,建议使用环境变量:${AI_SILICONFLOW_API_KEY}
  • base-url 硅基流动线上服务地址
  • model 这里同样填的是通义千问,可以根据官网所有的模型进行切换
spring:application:name: ai-demoai:openai:api-key: ${AI_SILICONFLOW_API_KEY}base-url: https://api.siliconflow.cnchat:options:model: Qwen/Qwen2.5-72B-Instruct

4、编写 java 代码

@RestController
@RequestMapping("/ai")
public class ChatController {private final ChatClient chatClient;public ChatController(ChatClient.Builder chatClient) {this.chatClient = chatClient.build();}@GetMapping("/chat")public String chat(@RequestParam(value = "input") String input) {return chatClient.prompt().user(input).call().content();}
}

5、跑起来测试,大功告成

 

五、总结

spring AI 的接入其实是比较简单,但是要注意以下事项:

  1. 如果切换了模型,注意将其它模型的 maven 依赖注释掉,重新刷新 maven ,不然会有 jar 包冲突;
  2. Spring Boot 版本号和模型 spring-ai-starter 的版本号需要参考官网,或者尽量选高版本,避免不兼容问题;
  3. 如果 spring-ai 依赖包拉不下来,需要将 maven 仓库的 setting.xml 配置一下,把 <mirrorOf>*</mirrorOf> 换成    <mirrorOf>*,!spring-snapshots,!central-portal-snapshots</mirrorOf> ,因为阿里云仓库可能并没有 spring-ai 的依赖包,* 就会全部重定向到阿里云的仓库去获取。
<!-- 阿里云 Maven 镜像 -->
<mirror><id>aliyun-maven</id><name>Aliyun Maven Repository</name><url>https://maven.aliyun.com/repository/public/</url><mirrorOf>*,!spring-snapshots,!central-portal-snapshots</mirrorOf><!-- <mirrorOf>*</mirrorOf> -->
</mirror>

最后,如果觉得博主写的不错的话,可以点点关注!

 

http://www.dtcms.com/a/442123.html

相关文章:

  • 华为OD机试C卷 - 分苹果 - 二进制 - (Java C++ JavaScript Python)
  • 国内好的seo网站网站建设课程的感受
  • 用 Gradle 配置 Flink 从开发到打包的一条龙实践
  • gRPC从0到1系列【17】
  • 浅谈内存DDR——DDR4性能优化技术
  • 静态网页模板网站电商运营培训班
  • mysqldump导入备份数据到阿里云RDS会报错吗
  • QT肝8天16--加载动态菜单
  • Spring Boot整合缓存——Redis缓存!超详细!
  • 湘潭做网站品牌磐石网络wordpress 柚子皮
  • 前端实战开发(二):React + Canvas 网络拓扑图开发:6 大核心问题与完整解决方案
  • 【C语言数据结构】第2章:线性表(2)--线性表的顺序存储结构
  • 计算机操作系统--进程:共享内存和管道的差异
  • 深圳移动网站建设公司上海建筑工程有限公司
  • 【Linux】入门指南:基础指令详解Part One
  • 使用 Docker 部署 Nginx 教程
  • 重庆做网站微信的公司上海平面网站
  • 整站优化seo公司哪家好千峰网课
  • C语言指针应用的经典案例
  • C++篇(11)继承
  • 小迪web自用笔记54
  • 网站logo如何做清晰佛山seo优化电话
  • 词袋模型BoW
  • 数据驱动AI实战:从统计学习方法到业务落地的核心方法论
  • 网站开发需求大吗第一次做怎么放进去视频网站
  • display vlan verbose 概念及题目
  • 深度学习写作:model与module; 试验与实验
  • 企业 网站 程序微信小程序开发平台
  • ViT实战二:Cls token
  • AI + 制造:从技术试点到产业刚需的 2025 实践图鉴