deepseek4j 专为 Java 开发者打造的 DeepSeek 模型集成框架

1,805 阅读3分钟

DeepSeek4j简介

DeepSeek4j Spring Boot Starter为开发者提供了一种简便的方式来集成DeepSeek AI的强大功能到Spring Boot项目中。通过简单的配置和易于使用的API,即使是AI初学者也能轻松上手。该库支持流式返回、高级对话管理等功能,并且可以与本地部署的Ollama Deepseek-r1:14b模型无缝对接。文章详细介绍了如何添加Maven依赖、基础配置步骤、以及使用示例代码来实现聊天应用。此外,还提供了关于如何安装Ollama、下载模型、配置服务等实用信息,旨在帮助开发者快速启动并运行自己的AI项目。

image.png

开源地址:

github.com/pig-mesh/de…

Deepseek4j快速开始

Maven 依赖

在你的 pom.xml 中添加以下依赖:

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

基础配置

 `application.yml`  `application.properties` 中添加必要的配置:

    deepseek:
      api-key: your-api-key-here  # 必填项:你的 API 密钥
      base-url: https://api.deepseek.com  # 可选,默认为官方 API 地址
      log-requests: true  # 可选,是否记录请求日志
      log-responses: true  # 可选,是否记录响应日志
      
      # 可选的超时配置(单位:秒)
      connect-timeout: 10
      read-timeout: 30
      call-timeout: 60
      
      # 代理配置(可选)
      proxy:
        host: proxy.example.com
        port: 8080
        
      # 日志级别配置(可选)
      log-level: BASIC

基础使用示例

1. 流式返回示例

    @Autowired
    private DeepSeekClient deepSeekClient;

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

2. 进阶配置示例

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

Deepseek4j接入本地R1

使用 Deepseek4j 接入 Ollama 的 Deepseek-r1:14b 模型。

Ollama 安装部署

1. 安装 Ollama

在 macOS 上安装 Ollama:

curl https://ollama.ai/install.sh | sh

在 Linux 上安装 Ollama:

curl https://ollama.ai/install.sh | sh

在 Windows 上安装:

  • 访问 Ollama官网 下载安装包
  • 运行安装程序完成安装

2. 下载 Deepseek-r1:14b 模型

安装完成后,打开终端运行以下命令下载模型:

ollama pull deepseek-r1:14b

3. 启动 Ollama 服务

ollama serve

服务默认运行在 http://127.0.0.1:11434

Deepseek4j 配置

1. 配置文件设置

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

注意模型名称:deepseek-r1:14b , 和上文Ollama run 参数一致

deepseek.base-url=http://127.0.0.1:11434/v1
deepseek.model=deepseek-r1:14b
deepseek.api-key=deepseek #不能为空,随意填

2. 代码示例

@Autowired
private DeepSeekClient deepSeekClient;

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

注意事项

  1. 确保 Ollama 服务正常运行
  2. 模型下载可能需要一些时间,取决于网络状况
  3. 首次使用时需要等待模型加载
  4. 建议使用 16GB 以上内存的机器运行

常见问题

1. 连接超时

检查 Ollama 服务是否正常运行:

curl http://127.0.0.1:11434

Ollama is running

2. 内存不足

可以通过设置环境变量来限制模型使用的显存:

export OLLAMA_GPU_LAYERS=0

3. 模型响应速度

  • 首次请求可能较慢,这是正常现象
  • 后续请求会更快,因为模型已经加载到内存中

文档链接