DeepSeek4J 发布啦,Java 开发者的福音,一行代码集成 DeepSeek

大家好,我是晓凡。

嘿,各位 Java 开发的小伙伴们,是不是还在为如何高效集成 DeepSeek 模型到项目中而头疼?好消息来啦!DeepSeek4J 1.4 版本正式发布,这可是一个专门为 Java 生态量身打造的神器,让你轻松搞定 DeepSeek 的接入,简直不要太方便哦!

为什么 DeepSeek4J 如此重要?

先来说说背景吧。DeepSeek R1 凭借其强大的思维链能力,在开发者圈子里可是相当受欢迎的。

但你知道的,像 Spring AI 这些主流框架,对 DeepSeek 的支持实在是有些不尽如人意。

比如,思维链的内容很容易丢失,响应模式也不太兼容,关键参数设置还经常失效,流式处理更是差强人意。这些问题,简直让人心塞!

但别担心,DeepSeek4J 来拯救你啦!开源项目 Pig 的作者,基于 OpenAI4J 的优秀架构,打造了这个专门面向 DeepSeek 的开箱即用方案。

它不仅增强了对 DeepSeek 独有的思维链和账单特性的支持,还增加了 Project Reactor 的全面响应式支持,甚至还提供了集成 Spring Boot Starter,支持自动配置。这简直就是为 Java 开发者量身定制的福音啊!

核心特性大揭秘

DeepSeek4J 的核心特性简直亮瞎眼,让我来给你好好唠唠:

• 完整保留思维链能力和账单:再也不用担心推理过程丢失了,所有关键信息都能完整保留。

• 响应式流式处理:用户体验直接拉满,流式输出流畅得不行。

• 简单优雅的 API 设计:一行代码就能搞定集成,这效率,杠杠的!

• 开箱即用的 Spring Boot 集成:支持 2.x 和 3.x,无缝衔接,毫无压力。

• 内置调试页面:双击sse.html,实时对话监控轻松搞定,还能完整呈现思维链演进过程。

• 详细的请求响应日志:出了问题再也不用抓瞎,日志清晰明了,轻松定位。

• 灵活的代理配置:网络环境复杂?没关系,灵活配置代理,轻松应对。

• 响应式编程支持:现代编程需求全搞定,响应式编程不再是难题。

快速上手,轻松搞定

说了这么多,是不是迫不及待想试试了?别急,我这就带你快速上手。

1、 添加依赖

首先,在你的 Maven 项目中添加如下依赖:

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

2、 配置参数

接着,在application.yml文件中添加以下配置:

deepseek:
  api-key: your-api-key-here
  base-url: https://api.deepseek.com/v1

3、基础使用

搞定配置后,就可以开始使用啦。看下面的代码,是不是简单到飞起?

@Autowired
private DeepSeekClient deepSeekClient;

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

4、进阶配置

当然,如果你有更复杂的需求,DeepSeek4J 也完全能满足你。比如,你可以这样配置:

public Flux<ChatCompletionResponse> chat(String prompt) {
    
    
    ChatCompletionRequest request = ChatCompletionRequest.builder()
            .model(ChatCompletionModel.DEEPSEEK_CHAT)
            .addUserMessage(prompt)
            .addAssistantMessage("上轮结果")
            .addSystemMessage("你是一个专业的助手")
            .maxTokens(1000)
            .responseFormat()
            .tools()
            .build();
    return deepSeekClient.chatFluxCompletion(request);
}

开发私有大模型知识库,轻松又高效

DeepSeek4J 不仅能帮助你快速集成 DeepSeek,还能帮你开发私有大模型知识库。

虽然 DeepSeek 官方没有提供向量模型,但 DeepSeek4J 通过兼容 OpenAI 协议标准,完美解决了这个问题。
这种方式不仅零额外依赖,还完美兼容现有架构,学习成本也低得不行。

1、环境准备

在开始之前,你需要准备以下环境:

Ollama 模型准备

安装 Ollama,然后下载必要的模型:

ollama run deepseek-r1:14b
ollama run bge-m3:latest

2、向量数据库准备

你可以选择使用 Milvus 作为向量数据库。如果不想折腾,可以直接使用 Zilliz Cloud 中文版,获取连接信息即可。如果想自己搭建,用 Docker 安装也很方便:

curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh
bash standalone_embed.sh start

3、 初始化私有知识

接下来,就是把你的知识内容转换为向量形式,存储到向量数据库中。DeepSeek4J 提供了完整的解决方案,无论是纯文本还是其他格式的文件,都能轻松处理。

4、 创建 RAG 接口

最后,创建一个 RAG 接口,结合向量检索和模型推理,就能生成精准的回答啦。代码示例在这里:

@GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<ChatCompletionResponse> chat(String prompt) {
    
    
    MilvusClientV2 milvusClientV2 = new MilvusClientV2(connectConfig);
    List<Float> floatList = embeddingClientOptional.get().embed(prompt);
    SearchReq searchReq = SearchReq.builder()
            .collectionName("deepseek4j_test")
            .data(Collections.singletonList(new FloatVec(floatList)))
            .outputFields(Collections.singletonList("text"))
            .topK(3)
            .build();
    SearchResp searchResp = milvusClientV2.search(searchReq);
    List<String> resultList = new ArrayList<>();
    List<List<SearchResp.SearchResult>> searchResults = searchResp.getSearchResults();
    for (List<SearchResp.SearchResult> results : searchResults) {
    
    
        for (SearchResp.SearchResult result : results) {
    
    
            resultList.add(result.getEntity().get("text").toString());
        }
    }
    ChatCompletionRequest request = ChatCompletionRequest.builder()
            .model("deepseek-r1:14b")
            .addUserMessage(String.format("你要根据用户输入的问题:%s \n \n 参考如下内容:%s \n\n 整理处理最终结果", prompt, resultList)).build();
    return deepSeekClient.chatFluxCompletion(request);
}

总结

通过 DeepSeek4J 1.4,我们轻松完成了私有知识库的构建和 RAG 系统的搭建。虽然目前的系统已经能跑起来,但要达到生产可用,还需要进一步优化。比如,优化检索策略、重排序、提示词工程、知识库管理和性能调优等等。不过,有了 DeepSeek4J 这个强大的工具,这些优化工作也会轻松不少。

小伙伴们,还在等什么?赶紧去试试 DeepSeek4J 吧!更多高级特性和最佳实践,

可以参考官方文档:
官方文档

GitHub:github地址

本期内容就到这儿,希望对您有所帮助!
我们下期再见~