随着 DeepSeek R1 模型的发布,其强大的思维链能力让开发者为之兴奋。然而,Spring AI 等主流框架对其支持不足,导致很多开发者无法充分发挥模型潜力。本文将为您带来一个完美的解决方案 - deepseek4j。一、为什么需要 deepseek4j?1.1 现有框架的局限性
思维链内容丢失:R1 最核心的推理过程完全被忽略
响应模式不兼容:无法处理"思考在前、结论在后"的输出模式
参数限制:temperature、top_p 等关键参数设置失效
流式处理不完善:用户体验欠佳
,但这种方式存在一些问题:开发成本高:直接调用 API 或改造现有框架需要处理大量细节,包括请求构建、响应解析、错误处理等。
一不做二不休,为了彻底解决这些问题,笔者基于OpenAI4J[1]项目的优秀架构,打造了一个专门面向 DeepSeek 的开箱即用方案DeepSeek4J[2]
增强支持 DeepSeek 独有的思维链和账单特性
增加 Project Reactor 的全面响应式支持
提供集成 Spring Boot Starter,提供自动配置
✨ 完整保留思维链能力、账单
响应式流式处理
简单优雅的 API 设计
开箱即用的 Spring Boot 集成,同时支持 2.x / 3.x
内置调试页面
详细的请求响应日志
灵活的代理配置
⚡️ 响应式编程支持
io.github.pig-mesh.ai groupId>
deepseek-spring-boot-starter artifactId>
1.1.0 version> dependency>
3.2 配置参数deepseek:
api-key: your-api-key-here
base-url: https://api.deepseek.com/v1 # 可选,默认为官方 API 地址,支持火山、gitee、硅基流动3.3 基础使用@Autowired
private DeepSeekClient deepSeekClient;
// sse 流式返回
@GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux chat (String prompt) {
return deepSeekClient.chatFluxCompletion(prompt);
}3.4 进阶配置public Flux chat (String prompt) {
ChatCompletionRequest request = ChatCompletionRequest.builder()
// 模型选择,支持 DEEPSEEK_CHAT、DEEPSEEK_REASONER 等
.model(ChatCompletionModel.DEEPSEEK_CHAT)
// 添加用户消息
.addUserMessage(prompt)
// 添加助手消息,用于多轮对话
.addAssistantMessage("上轮结果")
// 添加系统消息,用于设置角色和行为
.addSystemMessage("你是一个专业的助手")
// 设置最大生成 token 数,默认 2048
.maxTokens(1000)
// 设置响应格式,支持 JSON 结构化输出
.responseFormat()
.tools() // function calling
.build();
return deepSeekClient.chatFluxCompletion(request);
}3.5 ️ 开发者专享彩蛋:内置可视化调试页面,双击 sse.html 即可开启实时对话监控,完整呈现思维链演进过程!页面提供了完整的前端实现代码,可作为集成参考。
参考资料
DeepSeek4J: https://github.com/pig-mesh/deepseek4j
在线阅读:https://talk.gitee.com/report/china-open-source-2024-annual-report.pdf
热门跟贴