集成Deepseek4j

DeepSeek Java SDK - 简单易用的 DeepSeek API Java 客户端

  • 完整的 DeepSeek API 支持,支持返回思维链和会话账单
  • 支持自定义连接参数、代理配置、超时设置、请求响应日志
  • Reactor 响应式支持,简化流式返回开发 Deepseek4j文档open in new window

快速开始

Maven依赖

  1. 修改mldong/pom.xml文件
  • 配置版本
<properties>
  <deepseek4j.version>1.4.1</deepseek4j.version>
  <jackson.version>2.12.4</jackson.version>
</properties>
  • 配置依赖管理
<dependencyManagement>
  <dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson</groupId>
        <artifactId>jackson-bom</artifactId>
        <version>${jackson.version}</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
    <dependency>
      <groupId>io.github.pig-mesh.ai</groupId>
      <artifactId>deepseek-spring-boot-starter</artifactId>
      <version>${deepseek4j.version}</version>
    </dependency>
    <!--这个在minio集成的时候已经配置了dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp</artifactId>
        <version>${okhttp3.version}</version>
    </dependency-->
    <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp-sse</artifactId>
        <version>${okhttp3.version}</version>
    </dependency>
  </dependencies>
</dependencyManagement>

注意!!!jackson-bom要在spring-boot-dependencies之前

dependencyManagement 2. 修改mldong/mldong-framework/mldong-base/pom.xml文件

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

基础配置

  1. 配置mldong/mldong-admin/src/main/resources/application.yml文件 增加如下配置:
deepseek:
  api-key: deepseek-ai/DeepSeek-R1  # 必填项:你的 API 密钥
  base-url: https://api.siliconflow.com/v1  # 可选,默认为官方 API 地址
  model: deepseek-ai/DeepSeek-R1
  log-requests: true  # 可选,是否记录请求日志
  log-responses: true  # 可选,是否记录响应日志
  # 可选的超时配置(单位:秒)
  connect-timeout: 10
  read-timeout: 30
  call-timeout: 60

注:这里配置的是硅基流动open in new window的api 硅基流动api-key

使用示例

  1. 新增mldong/mldong-admin/src/main/java/com/mldong/modules/sys/controller/DeepSeekController.java文件
package com.mldong.modules.sys.controller;

import io.github.pigmesh.ai.deepseek.core.DeepSeekClient;
import io.github.pigmesh.ai.deepseek.core.chat.ChatCompletionResponse;
import io.swagger.annotations.Api;
import lombok.RequiredArgsConstructor;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;

import javax.servlet.http.HttpServletResponse;

/**
 *
 *
 * @author mldong
 * @date 2025/2/16
 */
@RestController
@Api(tags = "ai-大模型")
@RequiredArgsConstructor
public class DeepSeekController {
    private final DeepSeekClient deepSeekClient;

    @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
    public Flux<ChatCompletionResponse> chat(HttpServletResponse response,String prompt) {
        // 修复中文乱码问题
        response.setContentType("text/event-stream;charset=UTF-8");
        return deepSeekClient.chatFluxCompletion(prompt);
    }
}
  1. 忽略权限 忽略权限

启动服务

测试

访问地址:http://localhost:8080/chat?prompt=茉莉花

浏览器访问