集成Deepseek4j
DeepSeek Java SDK - 简单易用的 DeepSeek API Java 客户端
- 完整的 DeepSeek API 支持,支持返回思维链和会话账单
- 支持自定义连接参数、代理配置、超时设置、请求响应日志
- Reactor 响应式支持,简化流式返回开发 Deepseek4j文档
快速开始
Maven依赖
- 修改
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
之前
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>
基础配置
- 配置
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
注:这里配置的是硅基流动的api
使用示例
- 新增
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);
}
}
- 忽略权限
启动服务
略
测试
访问地址:http://localhost:8080/chat?prompt=茉莉花