当前位置: 首页 > 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-demo ai: ollama: base-url: http://localhost:11434 chat: 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-demo ai: dashscope: api-key: ${AI_DASHSCOPE_API_KEY} base-url: https://dashscope.aliyuncs.com/compatible-mode/v1 chat: 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-demo ai: openai: api-key: ${AI_SILICONFLOW_API_KEY} base-url: https://api.siliconflow.cn chat: 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.jsqmd.com/news/1275692/

相关文章:

  • AI Agent 泡沫复盘:从 “养龙虾” 热潮看技术落地的底层逻辑
  • 石家庄闲置黄金变现渠道?收的顶各区分店整理,全天候专线 4008676661 - 一日一测评
  • 2026 年现阶段,余姚热门的源头 414405 H 型钢源头厂销售厂家综合实力解析,别再花冤枉钱!414x405 H型钢的秘密源头揭秘-中拓兴耀无缝钢管 - 企业信息推荐【官方】
  • TI FPD-Link III SerDes评估板实战:DS90UB927QEVM硬件设计与信号调试指南
  • BGE-M3联合嵌入在FastEmbed-rs中的应用: dense、sparse与ColBERT三合一
  • 数字电源保护功能深度解析:UV/OC/OT保护配置与工程实践
  • 2026年成都高考复读学校综合实力榜单:选校指南与招生信息盘点 - 资讯报道
  • 如何定制Ventoy启动菜单:打造个性化系统安装体验
  • 霞鹜文楷:如何为你的设备免费安装这款优雅的开源中文字体
  • 芯片封装选型实战:从WQFN到csBGA,如何为LM8333运放选择最佳封装
  • 深圳学生配眼镜别大意!选对青控镜片是关键 - 配眼镜新资讯
  • 从 curl 到工程封装:构建全网热搜数据聚合层
  • 3天构建可转债套利监控系统:量化交易实战指南
  • 终极原神抽卡分析工具:免费快速导出你的祈愿历史完整指南
  • 终极指南:如何轻松使用VIA桌面版打造个性化机械键盘
  • 为什么选择MVPArmsTemplate?Android开发者不可错过的架构利器
  • Oracle:参数化“常量”
  • 2026 有实力的AI外贸获客系统解决方案商场景攻略 - 信息热点
  • 2026成都复读学校招生季:12所合规学校办学资质与提分效果一览 - 资讯报道
  • recon-skills高级技巧:8种CORS漏洞变体与防御绕过实战案例
  • 技术深度解析:palera1n越狱工具的核心原理与高级配置指南
  • 2027亚洲消费电子展62%专业观众手握核心决策权
  • 10分钟上手Zend-Expressive:构建你的第一个中间件应用
  • 【JAVA毕业设计】基于 Java 的高校网络运维综合管理系统校园网络资源管理与故障处理平台 (源码+文档+远程调试,全bao定制等)
  • SDR++终极指南:如何用这款免费开源软件定义无线电工具改变你的频谱监测体验
  • 解锁游戏边界:用Sunshine打造你的跨设备游戏空间
  • SDR++:如何用这款开源软件轻松开启你的无线电探索之旅
  • ChatLab:解放你的社交记忆!本地优先的AI聊天记录分析工具全解析
  • 1.Maven
  • 2026成都复读学校怎么选:十大正规机构选购指南,从办学资质到收费标准全解析 - 资讯报道