DeepSeek4j 已开源,支持思维链,自定义参数,Spring Boot Starter 轻松集成,快速入门!建议收藏

ops/2025/2/15 11:53:10/

在这里插入图片描述

DeepSeek4j Spring Boot Starter 快速入门

简介

DeepSeek4j 是一个专为 Spring Boot 设计的 AI 能力集成启动器,可快速接入 DeepSeek 大模型服务。通过简洁的配置和易用的 API,开发者可轻松实现对话交互功能。


环境要求

  • JDK 8+
  • Spring Boot 2.7+
  • Maven/Gradle

安装依赖

Maven

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

基础配置

application.yml 中添加以下配置:

deepseek:api-key: your-api-key-here  # 必填,从 DeepSeek 控制台获取base-url: https://api.deepseek.com  # 可选,默认官方地址log-requests: true   # 记录请求日志log-responses: true  # 记录响应日志connect-timeout: 10  # 连接超时(秒)read-timeout: 30     # 读取超时(秒)call-timeout: 60     # 完整调用超时(秒)# 代理配置(可选)proxy:host: proxy.example.comport: 8080# 日志级别(可选:NONE/BASIC/HEADERS/BODY)log-level: BASIC

核心使用示例

1. 流式交互(推荐)

@Autowired
private DeepSeekClient deepSeekClient;/*** 流式对话接口* @param prompt 用户输入* @return SSE 流式响应*/
@GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<ChatCompletionResponse> streamChat(String prompt) {return deepSeekClient.chatFluxCompletion(prompt);
}

2. 进阶配置(多轮对话)

@GetMapping(value = "/chat/advanced", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<ChatCompletionResponse> advancedChat(String prompt) {ChatCompletionRequest request = ChatCompletionRequest.builder().model(ChatCompletionModel.DEEPSEEK_REASONER)  // 指定推理模型.addUserMessage(prompt)                       // 用户当前问题.addAssistantMessage("上轮对话结果")            // 历史助手回复.addSystemMessage("你是一名AI助理")            // 系统角色设定.maxTokens(1000)                              // 最大生成 token 数.temperature(0.7)                             // 生成多样性控制.tools(yourFunctionTools)                     // Function Calling 工具.responseFormat(ChatResponseFormat.JSON)       // 结构化响应.build();return deepSeekClient.chatFluxCompletion(request);
}

3. 同步调用(不推荐)

@GetMapping("/sync/chat")
public ChatCompletionResponse syncChat(String prompt) {ChatCompletionRequest request = ChatCompletionRequest.builder().model(deepSeekProperties.getModel())  // 从配置读取模型.addUserMessage(prompt).build();return deepSeekClient.chatCompletion(request).execute();
}

注意事项

  1. 流式优先原则
    推荐使用 chatFluxCompletion 实现流式响应,避免同步阻塞导致客户端超时。

  2. 模型选择建议

    • DEEPSEEK_CHAT: 通用对话场景
    • DEEPSEEK_REASONER: 复杂推理场景
    • 通过 model() 方法动态指定
  3. 安全合规

    • 敏感数据建议启用 encrypted-mobile 等加密字段
    • 遵守 GDPR 等数据保护法规
  4. 性能调优

    • 根据业务调整 maxTokens(默认 2048)
    • 合理设置超时时间(特别是 R1 长文本模型)
  5. 错误处理

    • 监听 onErrorResume 处理流式异常
    • 同步调用需捕获 IOExceptionAPIException

附录

完整配置项说明

配置项类型必填默认值说明
api-keyString-平台颁发的 API 密钥
base-urlString官方 API 地址自定义服务端点
log-requestsBooleanfalse是否记录完整请求日志
connect-timeoutint10连接超时时间(秒)
proxy.hostString-代理服务器地址


http://www.ppmy.cn/ops/158582.html

相关文章

LeetCode《算法通关手册》 1.2 数组排序

Python强推&#xff1a;算法通关手册&#xff08;LeetCode&#xff09; | 算法通关手册&#xff08;LeetCode&#xff09; (itcharge.cn) 目录 文章目录 1.2 数组排序1.2.1 选择排序1.2.2 冒泡排序[283. 移动零 - 力扣&#xff08;LeetCode&#xff09;](https://leetcode.cn/p…

【网络安全 | 漏洞挖掘】跨子域账户合并导致的账户劫持与删除

未经许可,不得转载。 文章目录 概述正文漏洞成因概述 在对目标系统进行安全测试时,发现其运行着两个独立的域名——一个用于司机用户,一个用于开发者/企业用户。表面上看,这两个域名各自独立管理账户,但测试表明它们在处理电子邮件变更时存在严重的逻辑漏洞。该漏洞允许攻…

Xilinx kintex-7系列 FPGA支持PCIe 3.0 吗?

Xilinx kintex-7系列资源如下图 Xilinx各系列的GT资源类型和性能 PCIe Gen1/2/3的传输速率对比 K7上面使用的高速收发器GTX最高速率为12.5GT/s&#xff0c; PCIe Gen2 每个通道的传输速率为 5 GT/s。 PCIe Gen3 每个通道的传输速率为 8 GT/s。 所以理论上硬件支持PCIe3.0&#…

Python基于 Flask 创建简单Web服务并接收文件

在全部网口上创建web服务, 监听8080端口关闭debug模式GET时返回HTML界面, 用于提交文件POST到 /upload 时, 从接收的 file 变量中读取文件, 并传递给 opencv 解析为 image 对象 from flask import Flask, request, redirect, url_for import os import cv2 import numpy impor…

【LINUX】常用指令查询

目录 文件操作查看目录&#xff08;ls/ll&#xff09;进入目录&#xff08;cd&#xff09;创建目录&#xff08;mkdir&#xff09;移动操作&#xff08;mv&#xff09;删除操作&#xff08;rm&#xff09; 文件操作 查看目录&#xff08;ls/ll&#xff09; 查看当前目录下的所…

【Qt】:概述(下载安装、认识 QT Creator)

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Qt 目录 一&#xff1a;&#x1f525; 介绍 &#x1f98b; 什么是 QT&#x1f98b; QT 发展史&#x1f98b; Qt版本&#x1f98b; QT 优点 一&#xff1a;&#x1f525; 搭建Qt开发环境 &#x1f9…

科普:数据仓库中的“指标”和“维度”

在数据仓库中&#xff0c;指标和维度是两个核心概念&#xff0c;它们对于数据分析和业务决策至关重要。以下是对这两个概念的分析及举例说明&#xff1a; 一、指标 定义&#xff1a; 指标是用于衡量业务绩效的关键数据点&#xff0c;通常用于监控、分析和优化企业的运营状况。…

D365(Dynamics 365 CE/PO)审计记录(Audit)一点点分析

D365(Dynamics 365 CE/PO)审计记录(Audit)一点点分析 D365 Audit D365(Dynamics 365 CE/PO)审计记录(Audit)一点点分析 1.删除objectid&#xff08;被审计实体记录的唯一标识符&#xff09;为&#xff1a;00000000-0000-0000-0000-000000000000&#xff08;空GUID&#xff09; …