Spring Boot+SpringAI+DeepSeek 接口调用实操教程
·
DeepSeek接口调用
基于SpringAI集成DeepSeek接口的技术实现
SpringAI作为Spring生态中面向AI应用开发的扩展框架,为开发者提供了便捷的AI能力集成方案。结合DeepSeek提供的强大模型接口,可快速构建智能应用。以下为关键实现步骤:
一、环境配置与依赖
1.1 版本适配要求
本文使用的SpringAI 1.0.0 对底层环境有严格要求,需提前确认环境满足:
| 环境 | 版本 |
|---|---|
| JDK 版本 | ≥17 |
| Spring Boot 版本 | ≥3.2.0 |
| Maven 版本 | ≥3.6.0 |
1.2 Maven 配置
在Spring Boot项目中引入SpringAI和DeepSeek相关依赖。Maven配置需包含以下核心库:
<dependencies>
<!-- Spring AI DeepSeek 核心依赖-->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-deepseek</artifactId>
</dependency>
</dependencies>
<!-- Spring AI BOM 统一管理版本 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>1.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
二、API密钥配置
2.1 API密钥申请步骤
- 登录DeepSeek官网,选择
API开放平台:
- 选择
API Keys,选择创建API key:
- 填写名称后得到API key,请复制保存好,关闭后无法再次查看,只能重新创建。(请不要复制本文示图中的key,已删除,此key无效。)


- DeepSeek API 需充值后才能使用,点击「去充值」选择自定义金额(小额充值即可,余额未使用可申请退款)。

2.2 配置文件
在application.yml中配置DeepSeek的访问凭证:
spring:
# Spring AI配置
ai:
deepseek:
api-key: "此处填写前面申请得到的api-key"
base-url: https://api.deepseek.com
chat:
options:
model: deepseek-chat# 通用对话模型,可选deepseek-coder-v2(代码生成模型)
temperature: 0.7 # 回答随机性,0-1之间,值越低越严谨
max-tokens: 2000 # 模型最大输出字符数,控制回答长度
retry:
max-attempts: 3 # 接口调用失败最大重试次数
backoff:
initial-interval: 2s
multiplier: 1.5
可根据业务需求,自定义 chat(模型参数)、retry(重试策略)等配置项。
三、基础功能
3.1 服务层封装
创建AIService封装对话生成功能,注入SpringAI的ChatClient,示例代码如下:
import org.springframework.ai.chat.ChatResponse;
import org.springframework.ai.chat.ChatClient;
import org.springframework.ai.prompt.Prompt;
import org.springframework.ai.prompt.PromptTemplate;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* AI服务层:封装DeepSeek接口调用逻辑
*/
@Service
public class AIService {
// SpringAI自动配置的ChatClient,无需手动创建
private final ChatClient chatClient;
public AIService(ChatClient chatClient) {
this.chatClient = chatClient;
}
/**
* 通用对话生成:基于提示词模板生成回答
* @param userQuestion 用户问题
* @return 模型生成的回答
*/
public String generateResponse(String userQuestion) {
// 定义提示词模板(可根据业务场景调整)
String promptTemplate = """
你是一位专业的技术助手,需满足以下要求:
1. 回答简洁明了,直击重点;
2. 技术问题需提供具体实现思路或代码示例;
3. 拒绝回答无关、违法、不道德的内容。
用户问题:{question}
""";
// 构建提示词模板对象,绑定用户问题参数
PromptTemplate template = new PromptTemplate(promptTemplate);
Map<String, Object> params = Map.of("question", userQuestion);
Prompt prompt = template.create(params);
// 调用DeepSeek接口,获取响应结果
ChatResponse response = chatClient.call(prompt);
// 解析响应内容并返回
return response.getResult().getOutput().getContent();
}
}
3.2 控制层测试接口
创建AIController类,提供同步对话 HTTP 接口,方便前端 / 第三方系统调用,示例代码如下:
import com.example.springaideepseekdemo.service.AIService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* AI控制层:提供HTTP接口
*/
@RestController
public class AIController {
// 注入AI服务层对象
@Resource
private AIService aiService;
/**
* 同步对话接口:适用于不需要实时反馈的场景
* 访问示例:http://localhost:8080/ai/chat?question=SpringAI是什么
* @param question 用户问题
* @return 模型生成的回答
*/
@GetMapping("/ai/chat")
public String chat(@RequestParam String question) {
// 调用服务层方法,返回结果
return aiService.generateResponse(question);
}
}
3.3 基础功能测试
- 启动 Spring Boot 项目(确保无编译错误);
- 打开
浏览器或Postman,访问接口:http://localhost:8080/ai/chat?question=SpringAI是什么; - 正常情况下,浏览器会直接返回 DeepSeek 的回答,示例:
SpringAI是Spring生态下的AI应用开发框架,提供了统一的AI模型调用抽象层,支持主流大模型(如OpenAI、DeepSeek、通义千问等)。其核心优势包括:1. 简化调用流程,无需手动封装HTTP请求;2. 内置重试、限流、流式响应等特性;3. 与Spring Boot无缝集成,支持依赖注入、配置绑定等Spring生态特性,帮助开发者快速将大模型能力集成到Java应用中。
四、总结
本文完成了SpringAI集成DeepSeek接口的核心实操实现,展示了从环境搭建到接口测试的全步骤。可根据业务需求自定义模型参数、扩展功能模块,及时更新框架与SDK版本即可适配最新的API能力。
更多推荐
所有评论(0)