DeepSeek 推出两款模型;
- DeepSeek V 系列,对于V系列主要 对话,模型名称:deepseek-chat
- DeepSeek R 系统,对于R系统主要 推理, 模型名称:deepseek-reasoner
DeepSeek 官方更新日志,可以看到模型发布和演化的过程。
DeepSeek 官方文档:https://api-docs.deepseek.com/zh-cn/
接入准备
创建 API 密钥:访问此处创建 API 密钥,使用 Spring AI 项目中的
spring.ai.openai.api-key
属性对其进行配置。设置 DeepSeek 基本 URL:将
spring.ai.openai.base-url
属性设置为api.deepseek.com
。选择 DeepSeek 模型:使用属性
spring.ai.openai.chat.model=<model name>
指定模型。
- 有关可用选项,请参阅支持的型号。
引入依赖:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
spring:
ai:
openai:
api-key: sk-xxx // 填写自己申请的key
base-url: https://api.deepseek.com
chat:
options:
model: deepseek-chat
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;
import java.util.Map;
@RestController
public class ChatController {
private final OpenAiChatModel chatModel;
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) {
return Map.of("generation", this.chatModel.call(message));
}
@GetMapping("/ai/generateStream")
public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
Prompt prompt = new Prompt(new UserMessage(message));
return this.chatModel.stream(prompt);
}
}
集成 DeepSeek R1 局限性
对于DeepSeek V系统的模型支持尚还可以,但是对于DeepSeek R系统的模型支持,Spring AI框架存在以后问题,
- 思维链内容丢失:R1 最核心的推理过程完全被忽略。
- 响应模式不兼容:无法处理思考在前、结论在后的输出模式。
- 参数限制:temperature、top_p 等关键参数设置失效。
- 流式处理不完善:用户体验欠佳。
为了解决以上问题,DeepSeek4j框架开源,提供了开箱即用的 Spring Starter,具体使用可以参考官方文档。
DeepSeek4j 是面向 DeepSeek 推出的 Java 开发 SDK,支持 DeepSeek R1 和 V3 全系列模型。
提供对话推理、函数调用、JSON结构化输出、以及基于 OpenAI 兼容 API 协议的嵌入向量生成能力。
通过 Spring Boot Starter 模块,开发者可以快速为 Spring Boot 2.x/3.x 以及 Solon 等主流 Java Web 框架集成 AI 能力。
提供开箱即用的配置体系、自动装配的客户端实例,以及便捷的流式响应支持。