DeepSeek4j 已开源,支持思维链,自定义参数,Spring Boot Starter 轻松集成,快速入门!建议收藏

DeepSeek4j Spring Boot Starter 快速入门

简介

DeepSeek4j 是一个专为 Spring Boot 设计的 AI 能力集成启动器,可快速接入 DeepSeek 大模型服务。通过简洁的配置和易用的 API,开发者可轻松实现对话交互功能。


环境要求

  • JDK 8+
  • Spring Boot 2.7+
  • Maven/Gradle

安装依赖

Maven

xml 复制代码
<dependency>
  <groupId>io.github.pig-mesh.ai</groupId>
  <artifactId>deepseek-spring-boot-starter</artifactId>
  <version>1.3.2</version>
</dependency>

基础配置

application.yml 中添加以下配置:

yaml 复制代码
deepseek:
  api-key: your-api-key-here  # 必填,从 DeepSeek 控制台获取
  base-url: https://api.deepseek.com  # 可选,默认官方地址
  log-requests: true   # 记录请求日志
  log-responses: true  # 记录响应日志
  connect-timeout: 10  # 连接超时(秒)
  read-timeout: 30     # 读取超时(秒)
  call-timeout: 60     # 完整调用超时(秒)
  
  # 代理配置(可选)
  proxy:
    host: proxy.example.com
    port: 8080

  # 日志级别(可选:NONE/BASIC/HEADERS/BODY)
  log-level: BASIC

核心使用示例

1. 流式交互(推荐)

java 复制代码
@Autowired
private DeepSeekClient deepSeekClient;

/**
 * 流式对话接口
 * @param prompt 用户输入
 * @return SSE 流式响应
 */
@GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<ChatCompletionResponse> streamChat(String prompt) {
    return deepSeekClient.chatFluxCompletion(prompt);
}

2. 进阶配置(多轮对话)

java 复制代码
@GetMapping(value = "/chat/advanced", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<ChatCompletionResponse> advancedChat(String prompt) {
    ChatCompletionRequest request = ChatCompletionRequest.builder()
        .model(ChatCompletionModel.DEEPSEEK_REASONER)  // 指定推理模型
        .addUserMessage(prompt)                       // 用户当前问题
        .addAssistantMessage("上轮对话结果")            // 历史助手回复
        .addSystemMessage("你是一名AI助理")            // 系统角色设定
        .maxTokens(1000)                              // 最大生成 token 数
        .temperature(0.7)                             // 生成多样性控制
        .tools(yourFunctionTools)                     // Function Calling 工具
        .responseFormat(ChatResponseFormat.JSON)       // 结构化响应
        .build();
        
    return deepSeekClient.chatFluxCompletion(request);
}

3. 同步调用(不推荐)

java 复制代码
@GetMapping("/sync/chat")
public ChatCompletionResponse syncChat(String prompt) {
    ChatCompletionRequest request = ChatCompletionRequest.builder()
        .model(deepSeekProperties.getModel())  // 从配置读取模型
        .addUserMessage(prompt)
        .build();
        
    return deepSeekClient.chatCompletion(request).execute();
}

注意事项

  1. 流式优先原则

    推荐使用 chatFluxCompletion 实现流式响应,避免同步阻塞导致客户端超时。

  2. 模型选择建议

    • DEEPSEEK_CHAT: 通用对话场景
    • DEEPSEEK_REASONER: 复杂推理场景
    • 通过 model() 方法动态指定
  3. 安全合规

    • 敏感数据建议启用 encrypted-mobile 等加密字段
    • 遵守 GDPR 等数据保护法规
  4. 性能调优

    • 根据业务调整 maxTokens(默认 2048)
    • 合理设置超时时间(特别是 R1 长文本模型)
  5. 错误处理

    • 监听 onErrorResume 处理流式异常
    • 同步调用需捕获 IOExceptionAPIException

附录

完整配置项说明

配置项 类型 必填 默认值 说明
api-key String - 平台颁发的 API 密钥
base-url String 官方 API 地址 自定义服务端点
log-requests Boolean false 是否记录完整请求日志
connect-timeout int 10 连接超时时间(秒)
proxy.host String - 代理服务器地址

相关推荐
小蒜学长1 小时前
医疗报销系统的设计与实现(代码+数据库+LW)
数据库·spring boot·学习·oracle·课程设计
羊小猪~~1 小时前
MYSQL学习笔记(九):MYSQL表的“增删改查”
数据库·笔记·后端·sql·学习·mysql·考研
我们的五年1 小时前
MySQL 架构
数据库·mysql·开源
豌豆花下猫2 小时前
Python 潮流周刊#90:uv 一周岁了,优缺点分析(摘要)
后端·python·ai
橘猫云计算机设计2 小时前
基于SSM的《计算机网络》题库管理系统(源码+lw+部署文档+讲解),源码可白嫖!
java·数据库·spring boot·后端·python·计算机网络·毕设
小盼江2 小时前
水果生鲜农产品推荐系统 协同过滤余弦函数推荐水果生鲜农产品 Springboot Vue Element-UI前后端分离 代码+开发文档+视频教程
vue.js·spring boot·ui
熬夜苦读学习2 小时前
Linux文件系统
linux·运维·服务器·开发语言·后端
坚定信念,勇往无前3 小时前
Spring Boot中整合Flink CDC 数据库变更监听器来实现对MySQL数据库
数据库·spring boot·flink
CCF ODC3 小时前
2025年第一期 | CCF ODC《开源战略动态月报》
开源
坚定信念,勇往无前3 小时前
Spring Boot 如何保证接口安全
spring boot·后端·安全