集成DeepSeek

月伴飞鱼 2025-04-20 22:14:10
AI相关 > AI框架 > Spring AI
支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者!

DeepSeek 推出两款模型;

  • DeepSeek V 系列,对于V系列主要 对话,模型名称:deepseek-chat
  • DeepSeek R 系统,对于R系统主要 推理, 模型名称:deepseek-reasoner

DeepSeek 官方更新日志,可以看到模型发布和演化的过程。

DeepSeek 官方文档:https://api-docs.deepseek.com/zh-cn/

接入准备

创建 API 密钥:访问此处创建 API 密钥,使用 Spring AI 项目中的 spring.ai.openai.api-key 属性对其进行配置。

设置 DeepSeek 基本 URL:将 spring.ai.openai.base-url 属性设置为 api.deepseek.com

选择 DeepSeek 模型:使用属性 spring.ai.openai.chat.model=<model name> 指定模型。

引入依赖:

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
spring:
  ai:
    openai:
      api-key: sk-xxx   // 填写自己申请的key
      base-url: https://api.deepseek.com
      chat:
        options:
          model: deepseek-chat
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;

import java.util.Map;


@RestController
public class ChatController {

    private final OpenAiChatModel chatModel;
    
    public ChatController(OpenAiChatModel chatModel) {
        this.chatModel = chatModel;
    }

    @GetMapping("/ai/generate")
    public Map<String, String> generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
        return Map.of("generation", this.chatModel.call(message));
    }

    @GetMapping("/ai/generateStream")
    public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
        Prompt prompt = new Prompt(new UserMessage(message));
        return this.chatModel.stream(prompt);
    }
}

集成 DeepSeek R1 局限性

对于DeepSeek V系统的模型支持尚还可以,但是对于DeepSeek R系统的模型支持,Spring AI框架存在以后问题,

  • 思维链内容丢失:R1 最核心的推理过程完全被忽略。
  • 响应模式不兼容:无法处理思考在前、结论在后的输出模式。
  • 参数限制:temperature、top_p 等关键参数设置失效。
  • 流式处理不完善:用户体验欠佳。

为了解决以上问题,DeepSeek4j框架开源,提供了开箱即用的 Spring Starter,具体使用可以参考官方文档

https://github.com/pig-mesh/deepseek4j

DeepSeek4j 是面向 DeepSeek 推出的 Java 开发 SDK,支持 DeepSeek R1 和 V3 全系列模型。

提供对话推理、函数调用、JSON结构化输出、以及基于 OpenAI 兼容 API 协议的嵌入向量生成能力。

通过 Spring Boot Starter 模块,开发者可以快速为 Spring Boot 2.x/3.x 以及 Solon 等主流 Java Web 框架集成 AI 能力。

提供开箱即用的配置体系、自动装配的客户端实例,以及便捷的流式响应支持。

支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者!