springboot集成Deepseek4j的项目实践

 更新时间:2025年03月26日 11:38:03   作者:学亮编程手记  
本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Deepseek4j快速开始

Maven 依赖

在你的 pom.xml 中添加以下依赖:

<dependency>
  <groupId>io.github.pig-mesh.ai</groupId>
  <artifactId>deepseek-spring-boot-starter</artifactId>
  <version>1.4.2</version>
</dependency>

基础配置

在 application.yml 或 application.properties 中添加必要的配置:

deepseek:
  api-key: your-api-key-here  # 必填项:你的 API 密钥
  base-url: https://api.deepseek.com  # 可选,默认为官方 API 地址
  log-requests: true  # 可选,是否记录请求日志
  log-responses: true  # 可选,是否记录响应日志
  
  # 可选的超时配置(单位:秒)
  connect-timeout: 10
  read-timeout: 30
  call-timeout: 60
  
  # 代理配置(可选)
  proxy:
    host: proxy.example.com
    port: 8080
    
  # 日志级别配置(可选)
  log-level: BASIC

基础使用示例

1. 流式返回示例

@Autowired
private DeepSeekClient deepSeekClient;

@GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<ChatCompletionResponse> chat(String prompt) {
    return deepSeekClient.chatFluxCompletion(prompt);
}

2. 进阶配置示例

@GetMapping(value = "/chat/advanced", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<ChatCompletionResponse> chatAdvanced(String prompt) {
    ChatCompletionRequest request = ChatCompletionRequest.builder()
        // 模型选择,支持 DEEPSEEK_CHAT、DEEPSEEK_REASONER 等
        .model(ChatCompletionModel.DEEPSEEK_REASONER)
        // 添加用户消息
        .addUserMessage(prompt)
        // 添加助手消息,用于多轮对话
        .addAssistantMessage("上轮结果")
        // 添加系统消息,用于设置角色和行为
        .addSystemMessage("你是一个专业的助手")
        // 设置最大生成 token 数,默认 2048
        .maxTokens(1000)
        // 设置响应格式,支持 JSON 结构化输出
        .responseFormat(...) // 可选
        // function calling
        .tools(...) // 可选
        .build();
        
    return deepSeekClient.chatFluxCompletion(request);
}

3. 同步输出 (非实时响应流)

不推荐使用同步阻塞调用方式,R1模型推理耗时较长易导致客户端连接超时,且响应延迟会影响用户体验

@GetMapping(value = "/sync/chat")
public ChatCompletionResponse syncChat(String prompt) {
  ChatCompletionRequest request = ChatCompletionRequest.builder()
      // 根据渠道模型名称动态修改这个参数
      .model(deepSeekProperties.getModel())
      .addUserMessage(prompt).build();

  return deepSeekClient.chatCompletion(request).execute();
}

到此这篇关于springboot集成Deepseek4j的项目实践的文章就介绍到这了,更多相关springboot集成Deepseek4j内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Maven项目引用第三方jar包找不到类ClassNotFoundException

    Maven项目引用第三方jar包找不到类ClassNotFoundException

    这篇文章主要为大家介绍了Maven项目引用第三方jar包找不到类ClassNotFoundException解决及原因分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • SpringBoot使用knife4j进行在线接口调试

    SpringBoot使用knife4j进行在线接口调试

    这篇文章主要介绍了SpringBoot使用knife4j进行在线接口调试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Spring中@Validated和@Valid区别浅析

    Spring中@Validated和@Valid区别浅析

    @Valid是javax.validation里的, @Validated是@Valid 的一次封装,是Spring提供的校验机制使用,下面这篇文章主要给大家介绍了关于Spring中@Validated和@Valid区别的相关资料,需要的朋友可以参考下
    2022-04-04
  • Java将Object转换为数组的代码

    Java将Object转换为数组的代码

    这篇文章主要介绍了Java将Object转换为数组的情况,今天在使用一个别人写的工具类,这个工具类,主要是判空操作,包括集合、数组、Map等对象是否为空的操作,需要的朋友可以参考下
    2022-09-09
  • Java线程中Thread方法下的Join方法详解

    Java线程中Thread方法下的Join方法详解

    这篇文章主要介绍了Java线程中Thread方法下的Join方法详解,在项目中往往会遇到这样一个场景,就是需要等待几件事情都给做完后才能走下面的事情,这个时候就需要用到Thread方法下的Join方法,join方法是无参且没有返回值的,需要的朋友可以参考下
    2024-01-01
  • Spring Cloud Hystrix 服务容错保护的原理实现

    Spring Cloud Hystrix 服务容错保护的原理实现

    这篇文章主要介绍了Spring Cloud Hystrix 服务容错保护的原理实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • java腾讯AI人脸对比对接代码实例

    java腾讯AI人脸对比对接代码实例

    这篇文章主要介绍了java腾讯AI人脸对比对接,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Java原生服务器接收上传文件 不使用MultipartFile类

    Java原生服务器接收上传文件 不使用MultipartFile类

    这篇文章主要为大家详细介绍了Java原生服务器接收上传文件,不使用MultipartFile类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • MAC配置java+jmeter环境变量过程解析

    MAC配置java+jmeter环境变量过程解析

    这篇文章主要介绍了MAC配置java+jmeter环境变量过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • mybatis 为什么千万不要使用 where 1=1

    mybatis 为什么千万不要使用 where 1=1

    这篇文章主要介绍了mybatis 为什么千万不要使用 where 1=1,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05

最新评论