如何使用Spring AI来调用DeepSeek服务
作者:15726608245 · 2025-03-06 · 阅读时间:8分钟
最近逛了下Spring的官网,发现Spring AI已经支持DeepSeek!今天和大家聊聊如何在Spring Boot项目制使用DeepSeek,还是非常方便的!
Spring AI简介
Spring AI是Spring官方推出的开源框架,旨在为Java开发者提供方便的AI集成能力。其核心是通过抽象化和模块化设计,简化AI功能的接入步骤,同时保持与Spring生态的无缝兼容。
以下是其主要特点与功能:
- 统一的抽象API:支持主流AI服务,如 OpenAI、DeepSeek、Google、和Ollama等,提供了提供标准化的接口。
- 核心功能模块:模型交互、向量处理、检索增强生成(RAG)、函数调用。
- 低代码集成:通过Spring Boot Starter依赖快速接入,在配置文件中配置好AI服务即可使用。
- 结构化输出:将模型响应直接映射为Java对象,简化数据处理。
- 流式响应:支持Flux流式输出,适用于实时聊天等场景。
获取API KEY
由于DeepSeek官方服务有时候调用会繁忙,这里以阿里云百炼平台的DeepSeek服务为例。
- 首先我们需要去阿里云百炼找到DeepSeek这个模型,地址:https://bailian.console.aliyun.com

- 点击模型的
立即体验
,然后点击右上角的钥匙
按钮就可以获取到对应的API KEY了,首次使用需要自行创建API KEY。

这或许是一个对你有用的开源项目,mall项目是一套基于 SpringBoot3 + Vue 的电商系统(Github标星60K),后端支持多模块和 2024最新微服务架构 ,采用Docker和K8S部署。包括前台商城项目和后台管理系统,能支持完整的订单流程!涵盖商品、订单、购物车、权限、优惠券、会员、支付等功能!
- Boot项目:https://github.com/macrozheng/mall
- Cloud项目:https://github.com/macrozheng/mall-swarm
- 视频教程:https://www.macrozheng.com/video/
项目演示:

使用
接下来我们就来讲解下使用Spring AI来调用DeepSeek服务。
- 首先在SpringBoot项目中添加Spring AI对应的依赖;
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
<version>1.0.0-M6</version>
</dependency>
- 然后在项目的application.yml配置文件中添加调用AI服务相关的配置;
spring:
ai:
openai:
# 调用AI接口时表明身份的API KEY
api-key: <YOUR_API_KEY>
# 调用AI接口时的基础路径,配置的是阿里云百炼的基础路径
base-url: https://dashscope.aliyuncs.com/compatible-mode
chat:
options:
# 调用的模型,DeepSeek的话可以选择deepseek-r1或deepseek-v3
model: deepseek-r1
# 用来控制文本生成的随机性(创造力),值越小越严谨
temperature: 0.8
- 接下来在Controller中添加对应的接口来调用AI服务生成答案,这里提供了直接回答和流式回答两个接口。
/**
* @auther macrozheng
* @description 对接DeepSeek后生成回答的Controller
* @date 2025/2/21
* @github https://github.com/macrozheng
*/
@RestController
public class DeepSeekController {
private final OpenAiChatModel chatModel;
@Autowired
public DeepSeekController(OpenAiChatModel chatModel) {
this.chatModel = chatModel;
}
/**
* 根据消息直接输出回答
*/
@GetMapping("/ai/chat")
public Map chat(@RequestParam(value = "message") String message) {
return Map.of("generation", this.chatModel.call(message));
}
/**
* 根据消息采用流式输出,输出回答
*/
@GetMapping(value = "/ai/chatFlux", produces = MediaType.TEXT_EVENT_STREAM_VALUE + "; charset=UTF-8")
public Flux<ChatResponse> chatFlux(@RequestParam(value = "message") String message) {
Prompt prompt = new Prompt(new UserMessage(message));
return this.chatModel.stream(prompt);
}
}
测试
然后启动项目,这里我们使用Postman来测试下接口
- 首先调用下直接输出答案的接口,我们可以发现回答输出的时间比较长,接口地址:http://localhost:8080/ai/chat

- 接下来调用下流式输出答案的接口,我们可以发现它会持续不断地返回结果,直到请求连接关闭,接口地址:http://localhost:8080/ai/chatFlux

- 其实总的回答在
result.output.text
这个属性里面,我们可以通过接口中的text属性的拼接来获得完整的回答。

总结
今天给大家介绍了下Spring AI和DeepSeek的集成方法,还是比较简单的。对于回答的输出,由于直接输出响应比较慢,我们可以采用流式输出,通过不断拼接回答来响应比较好。
本文转载自@公众号macrozheng
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- SIGN×Bithumb 永续行情 API:边缘缓存 3 天优化策略
- 百度地图批量算路api服务介绍及应用场景
- Express + TypeScript + OpenFGA 权限控制实践指南
- 细粒度授权修复关键API安全风险 – Auth0
- REST API已经25岁了:它是如何形成的,将来可能会怎样?
- ZEN支付是什么?如何提高交易效率
- 标准API接口设计规范
- 音乐创作的新篇章:Flat音乐API的协同创作革命
- Python 使用 微博AI推文生成 API:自动化提升社交媒体营销效率
- 跨链桥节点混合云 API:5 天扩容方案
- 绕过API,直接部署数据库 – Fly.io
- B站微服务API管理