前言
DeepSeek AI 提供了开源的 DeepSeek V3 模型,该模型以其前沿的推理和问题解决能力而闻名。通过将这个强大的 AI 模型集成到 Spring Boot 应用程序中,开发人员可以轻松地利用先进的 AI 驱动功能。Spring AI 通过重用现有的 OpenAI 客户端来简化与 DeepSeek 的集成,使您能够使用熟悉的配置模式连接到 DeepSeek 的 API。在本文中,我们将逐步介绍将 DeepSeek 与 Spring Boot 集成的过程,涵盖先决条件、依赖项、配置和实际用法。

一、环境准备与技术选型
1.1 开发环境要求
- JDK 17+
- Maven 3.6+ / Gradle 7.x
- Spring Boot 3.2+
- IDE(推荐 IntelliJ IDEA)
1.2 关键技术组件
组件 | 版本 | 作用 |
---|---|---|
Spring AI | 1.0+ | AI 集成框架 |
DeepSeek Chat API | v3 | 大模型服务接口 |
Lombok | 1.18+ | 简化代码工具 |
二、项目初始化与配置
2.1 创建 Spring Boot 项目
通过 Spring Initializr 创建项目时选择:
- Spring Web
- Lombok
- Spring AI (OpenAI)

2.2 添加依赖管理
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
</dependencies>
三、DeepSeek 服务配置
3.1 获取 API 密钥
- 访问 DeepSeek 控制台
- 创建新应用
- 在「API 密钥」页面生成密钥
3.2 配置 application.properties
# DeepSeek API 密钥
spring.ai.openai.api-key=<您的_DEEPSEEK_API_密钥>
# DeepSeek 基础 URL
spring.ai.openai.base-url=https://api.deepseek.com
# DeepSeek 模型
spring.ai.openai.chat.options.model=deepseek-chat
# 可选:调整温度以控制响应创造力(0.0 到 1.0)
spring.ai.openai.chat.options.temperature=0.7
# 禁用嵌入(DeepSeek API 不支持)
spring.ai.openai.embedding.enabled=false
3.3 环境变量配置(可选)
# Windows
setx SPRING_AI_OPENAI_API_KEY=<您的_DEEPSEEK_API_密钥>
setx SPRING_AI_OPENAI_BASE_URL=https://api.deepseek.com
setx SPRING_AI_OPENAI_CHAT_MODEL=deepseek-chat
# Linux/macOS
export SPRING_AI_OPENAI_API_KEY=<您的_DEEPSEEK_API_密钥>
export SPRING_AI_OPENAI_BASE_URL=https://api.deepseek.com
export SPRING_AI_OPENAI_CHAT_MODEL=deepseek-chat
四、核心功能实现
4.1 基础对话服务
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
public class ChatController {
private final OpenAiChatModel chatModel;
@Autowired
public ChatController(OpenAiChatModel chatModel) {
this.chatModel = chatModel;
}
@GetMapping("/ai/generate")
public Map<String, String> generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
String response = this.chatModel.call(message);
return Map.of("generation", response);
}
}
- 说明:
generate
端点接受一个message
参数(默认为 "Tell me a joke"),并返回由 DeepSeek 生成的响应。OpenAiChatModel
在后台处理 API 调用。
4.2 基础对话服务
启动您的 Spring Boot 应用程序,并使用 curl 或浏览器等工具测试端点:
curl "http://localhost:8080/ai/generate?message=What%20is%20the%20meaning%20of%20life?"
您应该会收到类似于以下内容的 JSON 响应:
{
"generation": "生命的意义?根据 DeepSeek 的说法,它是 42——或者至少在我们弄清楚之前的一个好笑话!"
}
五、高级功能扩展
5.1 您可以在运行时为特定请求覆盖默认的聊天选项(例如,模型或温度)。以下是一个示例:
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.openai.OpenAiChatOptions;
ChatResponse response = chatModel.call(
new Prompt(
"Generate the names of 5 famous pirates.",
OpenAiChatOptions.builder()
.model("deepseek-chat")
.temperature(0.4) // 较低的温度以获得更集中的响应
.build()
)
);
- 说明:
OpenAiChatOptions
类允许您按请求微调参数,例如temperature
(控制随机性)或model
,从而覆盖application.properties
中设置的默认值。
5.2 对话历史管理
public class ChatHistoryManager {
private static final int MAX_HISTORY = 10;
private final Deque<Message> history = new ArrayDeque<>();
public void addMessage(Message message) {
if (history.size() >= MAX_HISTORY) {
history.removeFirst();
}
history.addLast(message);
}
public List<Message> getContext() {
return new ArrayList<>(history);
}
}
六、生产环境注意事项
6.1 性能优化建议
- 启用响应缓存
- 配置合理的超时设置
spring: ai: openai: chat: options: timeout: 30s
6.2 异常处理
@ControllerAdvice
public class AiExceptionHandler {
@ExceptionHandler(OpenAiApiException.class)
public ResponseEntity<ErrorResponse> handleAiException(OpenAiApiException ex) {
ErrorResponse error = new ErrorResponse(
"AI_SERVICE_ERROR",
ex.getMessage(),
Instant.now()
);
return new ResponseEntity<>(error, HttpStatus.SERVICE_UNAVAILABLE);
}
}
七、扩展阅读
如果你也对最新的AI信息感兴趣或者有疑问 都可以扫描下面的二维码加入我的大家庭 第一时间分享最新AI资讯、工具、教程、文档 欢迎你的加入!!!😉😉😉

文章评论