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

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();
}
注意事项
-
流式优先原则
推荐使用chatFluxCompletion实现流式响应,避免同步阻塞导致客户端超时。 -
模型选择建议
DEEPSEEK_CHAT: 通用对话场景DEEPSEEK_REASONER: 复杂推理场景- 通过
model()方法动态指定
-
安全合规
- 敏感数据建议启用
encrypted-mobile等加密字段 - 遵守 GDPR 等数据保护法规
- 敏感数据建议启用
-
性能调优
- 根据业务调整
maxTokens(默认 2048) - 合理设置超时时间(特别是 R1 长文本模型)
- 根据业务调整
-
错误处理
- 监听
onErrorResume处理流式异常 - 同步调用需捕获
IOException和APIException
- 监听
附录
完整配置项说明
| 配置项 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| api-key | String | 是 | - | 平台颁发的 API 密钥 |
| base-url | String | 否 | 官方 API 地址 | 自定义服务端点 |
| log-requests | Boolean | 否 | false | 是否记录完整请求日志 |
| connect-timeout | int | 否 | 10 | 连接超时时间(秒) |
| proxy.host | String | 否 | - | 代理服务器地址 |
相关文章:
DeepSeek4j 已开源,支持思维链,自定义参数,Spring Boot Starter 轻松集成,快速入门!建议收藏
DeepSeek4j Spring Boot Starter 快速入门 简介 DeepSeek4j 是一个专为 Spring Boot 设计的 AI 能力集成启动器,可快速接入 DeepSeek 大模型服务。通过简洁的配置和易用的 API,开发者可轻松实现对话交互功能。 环境要求 JDK 8Spring Boot 2.7Maven/Gr…...
无耳科技 Solon v3.0.8 发布,Java 企业级应用开发框架
Solon 框架! Solon 是新一代,Java 企业级应用开发框架。是杭州无耳科技有限公司的“根级”开源项目(最近“杭州六小龙”很火啊,我们也是杭州的哦)。从零开始构建(No Spring、No Java-EE、No Servlet&#…...
【吾爱出品】针对红警之类老游戏适用WIN10和11的补丁cnc-ddraw7.1汉化版
针对红警之类老游戏适用WIN10和11的补丁cnc-ddraw7.1汉化版 链接:https://pan.xunlei.com/s/VOJ8PZd4avMubnDzHQAeZDxWA1?pwdnjwm# 直接复制到游戏安装目录,保持与游戏主程序同目录下。...
使用 playwright 自定义 js 下载的路径和文件名
遇到一个问题,点击按钮自动下载文件,路径和文件名都不能自定义,可以用 playwright 来解决这个问题 from playwright.sync_api import sync_playwright import os import time class ExcelDownloader: def __init__(self, download_pat…...
Kafka分区管理大师指南:扩容、均衡、迁移与限流全解析
#作者:孙德新 文章目录 分区分配操作(kafka-reassign-partitions.sh)1.1 分区扩容、数据均衡、迁移(kafka-reassign-partitions.sh)1.2、修改topic分区partition的副本数(扩缩容副本)1.3、Partition Reassign场景限流1.4、节点内副本移动到不…...
3.从零开始学会Vue--{{生命周期,工程化,组件化}}
1.生命周期钩子 1.是什么 生命周期 概念:就是一个Vue实例从创建 到 销毁 的整个过程 生命周期包括:① 创建 ② 挂载 ③ 更新 ④ 销毁 四个阶段 1.创建阶段:创建响应式数据 2.挂载阶段:渲染模板 3.更新阶段:修改…...
Python--网络编程
3. 网络编程与Socket 3.1 Socket基础 创建Socket import socket# TCP Socket tcp_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)# UDP Socket udp_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM)服务器端函数 函数描述bind((host, port))绑定…...
【java】方法的基本内存原理(栈和堆)
java内存主要分为栈和堆,方法相关的部分主要在栈内存里,每个方法调用时会在栈里创建一个栈帧,存放局部变量和方法执行的信息。执行完后栈帧被销毁,局部变量消失。而对象实例存在堆里,由垃圾回收器管理。 **Java方法内…...
SQLMesh 系列教程4- 详解模型特点及模型类型
SQLMesh 作为一款强大的数据建模工具,以其灵活的模型设计和高效的增量处理能力脱颖而出。本文将详细介绍 SQLMesh 模型的特点和类型,帮助读者快速了解其强大功能。我们将深入探讨不同模型类型(如增量模型、全量模型、SCD Type 2 等࿰…...
SpringBoot(接受参数相关注解)
文章目录 1.基本介绍2.PathVariable 路径参数获取信息 1.代码实例 1.index.html2.ParameterController.java3.测试 2.细节说明 3.RequestHeader 请求头获取信息 1.代码实例 1.index.html2.ParameterController.java3.测试 2.细节说明 4.RequestParameter 请求获取参数信息 1.…...
hbase合并队列超长问题分析
问题现象 hbase集群合并队列超长,有节点上合并任务已经运行超过1天未结束,合并队列总长不断增加。 问题分析 参数配置: 配置参数默认值含义hbase.hregion.memstore.flush.size128MMemStore达到该值会Flush成StoreFilehbase.hregion.memstore.block.multiplier4当region中…...
FPGA的星辰大海
编者按 时下风头正盛的DeepSeek,正值喜好宏大叙事的米国大统领二次上岗就业,OpenAI、软银、甲骨文等宣布投资高达5000亿美元“星际之门”之际,对比尤为强烈。 某种程度上,,是低成本创新理念的直接落地。 包括来自开源社区的诸多赞誉是,并非体现技术有多“超越”,而是…...
认识vue-admin
认识vue-admin **核心交付:** 为什么要基于现成架子二次开发 什么是二次开发:基于已有的代码(项目工程,脚手架)开进行新功能的开发 所以看懂已有的框架中的既有代码,变得很重要了 1. 背景知识 后台管理系统是一种最…...
STM32、GD32驱动TM1640原理图、源码分享
一、原理图分享 二、源码分享 /************************************************* * copyright: * author:Xupeng * date:2024-07-18 * description: **************************************************/ #include "smg.h"#define DBG_TAG "smg&…...
spring boot 对接aws 的S3 服务,实现上传和查询
1.aws S3介绍 AWS S3(Amazon Simple Storage Service)是亚马逊提供的一种对象存储服务,旨在提供可扩展、高可用性和安全的数据存储解决方案。以下是AWS S3的一些主要特点和功能: 1.1. 对象存储 对象存储模型:S3使用…...
PH热榜 | 2025-02-12
1. FirstHR 2.0 with HR Copilot 标语:小型企业的一站式人力资源平台 介绍:对小型企业来说,FirstHR是一个人力资源平台,专注于招聘和团队发展,并融合了一点人工智能技术。 产品网站: 立即访问 Product …...
通过例子学 rust 个人精简版 1-1
1-1 Hello World fn main() {println!("Hello World!");// 动手试一试println!("Im a Rustacean!"); }Hello World! Im a Rustacean!要点1 :println 自带换行符 注释 fn main() {let x 5 /* 90 */ 5;println!("Is x 10 or 100? x …...
HTTP的前世今生:如何塑造现代互联网的交互方式?
一、关于HTTP 1.1 简介 “没有HTTP协议,就没有今天的互联网。” 从简单的文本传输到支撑全球数十亿设备的实时交互,HTTP协议始终是Web世界的核心纽带。本文将深入剖析其设计思想、演进历程及底层工作原理。 HTTP(HyperText Transfer Protoco…...
Flutter_学习记录_动画的简单了解
用AnimationController简单实现如下的效果图: 1. 只用AnimationController实现简单动画 1.1 完整代码案例 import package:flutter/material.dart;class AnimationDemo extends StatefulWidget {const AnimationDemo({super.key});overrideState<AnimationDe…...
【java】for (int num : numbers) { System.out.print(num + “ “); } for里的是什么意思
for (int num : numbers) 是 Java 中的一种 增强型 for 循环(也称为 for-each 循环)。它的作用是遍历数组或集合中的每一个元素,并对每个元素执行循环体中的操作。 1. 增强型 for 循环的语法 java Copy for (元素类型 变量名 : 数组或集合…...
如何用NVIDIA Profile Inspector解锁显卡隐藏性能:5分钟快速上手指南
如何用NVIDIA Profile Inspector解锁显卡隐藏性能:5分钟快速上手指南 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 还在为游戏卡顿、画面撕裂而烦恼吗?NVIDIA Profile Inspect…...
KH Coder:无需编程的13语言文本挖掘神器,让数据洞察触手可及
KH Coder:无需编程的13语言文本挖掘神器,让数据洞察触手可及 【免费下载链接】khcoder KH Coder: for Quantitative Content Analysis or Text Mining 项目地址: https://gitcode.com/gh_mirrors/kh/khcoder 你是否曾面对海量文本数据感到束手无策…...
基于大语言模型与提示词工程构建交互式人生模拟游戏
1. 项目概述:当AI成为你的“人生导演”如果你玩过《模拟人生》或者看过《楚门的世界》,大概能理解那种被设定好的、却又充满无限可能的人生体验。现在,把这个“导演”换成GPT-4,一个能理解你、能即兴创作、还能根据你的选择实时生…...
从黑客松到智慧农场:开源硬件与物联网如何重塑农业创新
1. 项目概述:当黑客松遇见老麦克唐纳的农场如果你觉得黑客松(Hackathon)只是硅谷程序员们关在会议室里,对着屏幕狂敲48小时代码,最后做出一个没人用的App,那Casper Koomen在2015年于荷兰北布拉班特省一个真…...
XHS-Downloader终极指南:3种高效模式实现小红书内容批量采集与下载
XHS-Downloader终极指南:3种高效模式实现小红书内容批量采集与下载 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、…...
AI+水文水资源实战:攻克非平稳序列预测、CMIP6降尺度、SWAT/EFDC/VIC模型自动化率定、启发式强化学习多目标优化(NSGA/MOEA/D)难关
您是否遇到过以下场景:拿到一个水文时间序列,不知道怎么自动检测异常值、估计P-III曲线参数、计算重现期?想用随机森林、XGBoost、LSTM甚至图神经网络做预测,但调参、过拟合、可解释性问题让您望而却步?跑SWAT/EFDC/De…...
基于Claude API的自动化工作流引擎:从原理到实战应用
1. 项目概述:一个面向Claude API的自动化工作流引擎最近在折腾AI应用开发,发现很多团队和个人开发者都在尝试将Claude这类大语言模型集成到自己的业务流程里。但直接调用API往往只是第一步,真正要做出稳定、高效、可维护的生产级应用…...
基于 4sapi 搭建 AI 多模态内容生产矩阵:自媒体与企业内容营销的全流程自动化落地方案
引言 2026 年,内容营销已经成为企业品牌增长、自媒体商业变现的核心抓手,从图文笔记、短视频脚本、行业白皮书,到多平台内容分发、SEO 优化、热点追更,内容生产的需求呈现爆发式增长。但绝大多数自媒体团队与企业市场部ÿ…...
测试02测试02测试02测试02测5
测试02测试02测试02测试02测5测试02测试02测试02测试02测5测试02测试02测试02测试02测5...
技术人的沟通折损率:如何让非技术同事听懂技术方案
一、技术沟通折损:软件测试从业者的隐形效率杀手在软件测试的工作链条里,我们每天都在和“沟通”打交道:向产品经理反馈bug影响范围、和开发团队对齐测试用例的边界、给运营同事讲解新功能的测试逻辑……但很多时候,我们拼尽全力输…...
