当前位置: 首页 > news >正文

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();
}

注意事项

  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-代理服务器地址

相关文章:

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

DeepSeek4j Spring Boot Starter 快速入门 简介 DeepSeek4j 是一个专为 Spring Boot 设计的 AI 能力集成启动器&#xff0c;可快速接入 DeepSeek 大模型服务。通过简洁的配置和易用的 API&#xff0c;开发者可轻松实现对话交互功能。 环境要求 JDK 8Spring Boot 2.7Maven/Gr…...

无耳科技 Solon v3.0.8 发布,Java 企业级应用开发框架

Solon 框架&#xff01; Solon 是新一代&#xff0c;Java 企业级应用开发框架。是杭州无耳科技有限公司的“根级”开源项目&#xff08;最近“杭州六小龙”很火啊&#xff0c;我们也是杭州的哦&#xff09;。从零开始构建&#xff08;No Spring、No Java-EE、No Servlet&#…...

【吾爱出品】针对红警之类老游戏适用WIN10和11的补丁cnc-ddraw7.1汉化版

针对红警之类老游戏适用WIN10和11的补丁cnc-ddraw7.1汉化版 链接&#xff1a;https://pan.xunlei.com/s/VOJ8PZd4avMubnDzHQAeZDxWA1?pwdnjwm# 直接复制到游戏安装目录&#xff0c;保持与游戏主程序同目录下。...

使用 playwright 自定义 js 下载的路径和文件名

遇到一个问题&#xff0c;点击按钮自动下载文件&#xff0c;路径和文件名都不能自定义&#xff0c;可以用 playwright 来解决这个问题 from playwright.sync_api import sync_playwright import os import time class ExcelDownloader: def __init__(self, download_pat…...

Kafka分区管理大师指南:扩容、均衡、迁移与限流全解析

#作者&#xff1a;孙德新 文章目录 分区分配操作(kafka-reassign-partitions.sh)1.1 分区扩容、数据均衡、迁移(kafka-reassign-partitions.sh)1.2、修改topic分区partition的副本数&#xff08;扩缩容副本&#xff09;1.3、Partition Reassign场景限流1.4、节点内副本移动到不…...

3.从零开始学会Vue--{{生命周期,工程化,组件化}}

1.生命周期钩子 1.是什么 生命周期 概念&#xff1a;就是一个Vue实例从创建 到 销毁 的整个过程 生命周期包括&#xff1a;① 创建 ② 挂载 ③ 更新 ④ 销毁 四个阶段 1.创建阶段&#xff1a;创建响应式数据 2.挂载阶段&#xff1a;渲染模板 3.更新阶段&#xff1a;修改…...

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内存主要分为栈和堆&#xff0c;方法相关的部分主要在栈内存里&#xff0c;每个方法调用时会在栈里创建一个栈帧&#xff0c;存放局部变量和方法执行的信息。执行完后栈帧被销毁&#xff0c;局部变量消失。而对象实例存在堆里&#xff0c;由垃圾回收器管理。 **Java方法内…...

SQLMesh 系列教程4- 详解模型特点及模型类型

SQLMesh 作为一款强大的数据建模工具&#xff0c;以其灵活的模型设计和高效的增量处理能力脱颖而出。本文将详细介绍 SQLMesh 模型的特点和类型&#xff0c;帮助读者快速了解其强大功能。我们将深入探讨不同模型类型&#xff08;如增量模型、全量模型、SCD Type 2 等&#xff0…...

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 **核心交付:** 为什么要基于现成架子二次开发 什么是二次开发&#xff1a;基于已有的代码&#xff08;项目工程&#xff0c;脚手架&#xff09;开进行新功能的开发 所以看懂已有的框架中的既有代码&#xff0c;变得很重要了 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&#xff08;Amazon Simple Storage Service&#xff09;是亚马逊提供的一种对象存储服务&#xff0c;旨在提供可扩展、高可用性和安全的数据存储解决方案。以下是AWS S3的一些主要特点和功能&#xff1a; 1.1. 对象存储 对象存储模型&#xff1a;S3使用…...

PH热榜 | 2025-02-12

1. FirstHR 2.0 with HR Copilot 标语&#xff1a;小型企业的一站式人力资源平台 介绍&#xff1a;对小型企业来说&#xff0c;FirstHR是一个人力资源平台&#xff0c;专注于招聘和团队发展&#xff0c;并融合了一点人工智能技术。 产品网站&#xff1a; 立即访问 Product …...

通过例子学 rust 个人精简版 1-1

1-1 Hello World fn main() {println!("Hello World!");// 动手试一试println!("Im a Rustacean!"); }Hello World! Im a Rustacean!要点1 &#xff1a;println 自带换行符 注释 fn main() {let x 5 /* 90 */ 5;println!("Is x 10 or 100? x …...

HTTP的前世今生:如何塑造现代互联网的交互方式?

一、关于HTTP 1.1 简介 “没有HTTP协议&#xff0c;就没有今天的互联网。” 从简单的文本传输到支撑全球数十亿设备的实时交互&#xff0c;HTTP协议始终是Web世界的核心纽带。本文将深入剖析其设计思想、演进历程及底层工作原理。 HTTP&#xff08;HyperText Transfer Protoco…...

Flutter_学习记录_动画的简单了解

用AnimationController简单实现如下的效果图&#xff1a; 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 循环&#xff08;也称为 for-each 循环&#xff09;。它的作用是遍历数组或集合中的每一个元素&#xff0c;并对每个元素执行循环体中的操作。 1. 增强型 for 循环的语法 java Copy for (元素类型 变量名 : 数组或集合…...

如何用NVIDIA Profile Inspector解锁显卡隐藏性能:5分钟快速上手指南

如何用NVIDIA Profile Inspector解锁显卡隐藏性能&#xff1a;5分钟快速上手指南 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 还在为游戏卡顿、画面撕裂而烦恼吗&#xff1f;NVIDIA Profile Inspect…...

KH Coder:无需编程的13语言文本挖掘神器,让数据洞察触手可及

KH Coder&#xff1a;无需编程的13语言文本挖掘神器&#xff0c;让数据洞察触手可及 【免费下载链接】khcoder KH Coder: for Quantitative Content Analysis or Text Mining 项目地址: https://gitcode.com/gh_mirrors/kh/khcoder 你是否曾面对海量文本数据感到束手无策…...

基于大语言模型与提示词工程构建交互式人生模拟游戏

1. 项目概述&#xff1a;当AI成为你的“人生导演”如果你玩过《模拟人生》或者看过《楚门的世界》&#xff0c;大概能理解那种被设定好的、却又充满无限可能的人生体验。现在&#xff0c;把这个“导演”换成GPT-4&#xff0c;一个能理解你、能即兴创作、还能根据你的选择实时生…...

从黑客松到智慧农场:开源硬件与物联网如何重塑农业创新

1. 项目概述&#xff1a;当黑客松遇见老麦克唐纳的农场如果你觉得黑客松&#xff08;Hackathon&#xff09;只是硅谷程序员们关在会议室里&#xff0c;对着屏幕狂敲48小时代码&#xff0c;最后做出一个没人用的App&#xff0c;那Casper Koomen在2015年于荷兰北布拉班特省一个真…...

XHS-Downloader终极指南:3种高效模式实现小红书内容批量采集与下载

XHS-Downloader终极指南&#xff1a;3种高效模式实现小红书内容批量采集与下载 【免费下载链接】XHS-Downloader 小红书&#xff08;XiaoHongShu、RedNote&#xff09;链接提取/作品采集工具&#xff1a;提取账号发布、收藏、点赞、专辑作品链接&#xff1b;提取搜索结果作品、…...

AI+水文水资源实战:攻克非平稳序列预测、CMIP6降尺度、SWAT/EFDC/VIC模型自动化率定、启发式强化学习多目标优化(NSGA/MOEA/D)难关

您是否遇到过以下场景&#xff1a;拿到一个水文时间序列&#xff0c;不知道怎么自动检测异常值、估计P-III曲线参数、计算重现期&#xff1f;想用随机森林、XGBoost、LSTM甚至图神经网络做预测&#xff0c;但调参、过拟合、可解释性问题让您望而却步&#xff1f;跑SWAT/EFDC/De…...

基于Claude API的自动化工作流引擎:从原理到实战应用

1. 项目概述&#xff1a;一个面向Claude API的自动化工作流引擎最近在折腾AI应用开发&#xff0c;发现很多团队和个人开发者都在尝试将Claude这类大语言模型集成到自己的业务流程里。但直接调用API往往只是第一步&#xff0c;真正要做出稳定、高效、可维护的生产级应用&#xf…...

基于 4sapi 搭建 AI 多模态内容生产矩阵:自媒体与企业内容营销的全流程自动化落地方案

引言 2026 年&#xff0c;内容营销已经成为企业品牌增长、自媒体商业变现的核心抓手&#xff0c;从图文笔记、短视频脚本、行业白皮书&#xff0c;到多平台内容分发、SEO 优化、热点追更&#xff0c;内容生产的需求呈现爆发式增长。但绝大多数自媒体团队与企业市场部&#xff…...

测试02测试02测试02测试02测5

测试02测试02测试02测试02测5测试02测试02测试02测试02测5测试02测试02测试02测试02测5...

技术人的沟通折损率:如何让非技术同事听懂技术方案

一、技术沟通折损&#xff1a;软件测试从业者的隐形效率杀手在软件测试的工作链条里&#xff0c;我们每天都在和“沟通”打交道&#xff1a;向产品经理反馈bug影响范围、和开发团队对齐测试用例的边界、给运营同事讲解新功能的测试逻辑……但很多时候&#xff0c;我们拼尽全力输…...