DeepSeek4j: Java应用一行代码集成DeepSeek R1 - OSCHINA - 中文开源技术交流社区

【有奖问卷】昇腾 Ascend 用户问卷调查开始!诚邀您参与!

DeepSeek R1 凭借其强大的思维链能力在开发者中广受欢迎。deepseek4j 框架提供了完整的 Java 集成方案,支持多个平台包括 Gitee AI,并带来联网搜索、多渠道支持等重要特性。本文将详细介绍如何使用 deepseek4j 快速集成 DeepSeek R1。

一、为什么需要 deepseek4j?

1.1 现有框架的局限性

  • 框架支持不足:LangChain4j/Spring AI 对 DeepSeek 支持不完善
  • 思维链内容丢失:R1 最核心的推理过程完全被忽略
  • 流式处理不完善:用户体验欠佳

1.2 deepseek4j 的优势

deepseek4j 是一个专为 Java 开发者打造的 DeepSeek 模型集成框架。通过优雅的 API 设计,只需一行代码,即可实现接入 DeepSeek,并获得以下核心能力:

  • 完整思维链保留:完美保留 DeepSeek 模型的推理过程
  • 🚀 流式输出体验:基于 Reactor 实现的流式响应
  • 🛠 简单优雅的 API 设计
  • 📦 开箱即用的 Spring Boot 集成
  • 💡 内置调试页面
  • 🔍 详细的请求响应日志
  • 🔧 灵活的代理配置
  • ⚡️ 响应式编程支持

二、快速开始

2.1 添加依赖

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

2.2 配置参数

在 application.properties 或 application.yml 中添加以下配置:

deepseek:
  # Gitee AI 平台配置
  base-url: https://ai.gitee.com/v1
  model: DeepSeek-R1
  api-key: your-gitee-ai-api-key

2.3 基础使用

@Autowired
private DeepSeekClient deepSeekClient;

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

2.4 进阶配置

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

    return deepSeekClient.chatFluxCompletion(request);
}

三、高级特性

3.1 联网搜索支持

  1. 突破时间边界:模型不再受限于预训练数据的时间范围,可以获取和处理最新信息
  2. 实时信息获取:通过高质量信息源获取实时资讯,提供更精准的问答服务
  3. 差异化竞争:在大模型同质化严重的当下,联网搜索成为关键的差异化竞争点
@GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<ChatCompletionResponse> chat(String prompt) {
    // 指定联网搜索参数
    SearchRequest searchRequest = SearchRequest.builder()
            .enable(true)
            .freshness(FreshnessEnums.ONE_DAY)// 一天内的数据
            .summary(true) // 返回摘要
            .count(10) // 返回10条
            .page(1) // 第一页
            .build();
    return deepSeekClient.chatSearchCompletion(prompt,searchRequest);
}

3.2 智能系统提示词

系统提示词(System Prompt)是基于模型开发的应用程序内置的指令,让决定了模型在特定上下文中的表现方式、回答风格和功能范围。

为了解决部分渠道模型部署时推理能力不稳定的问题,新版本引入了与 DeepSeek R1 官方版本一致的系统提示词功能:

  • 通过精心设计的提示词模板,确保模型输出的一致性和可靠性
  • 内置多层级的提示词优化策略,显著提升推理质量

3.3 调试支持

双击运行根目录的 sse.html 文件,即可打开调试页面。在页面中输入后端 SSE 接口地址,点击发送后可实时查看推理过程和最终结果。

针对非标准平台,新增了智能化的调试功能:

  • 自动处理 <think> 标签内容
  • 智能提取 reason_content
  • 优化多轮对话的 token 占用

四、多渠道支持

deepseek4j 支持多个部署渠道:

详细的使用文档请参考:


原网址: 访问
创建于: 2025-02-24 17:46:14
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论