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

news2025/2/15 22:44:15

在这里插入图片描述

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.com
    port: 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.coloradmin.cn/o/2298954.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL数据库误删恢复_mysql 数据 误删

2、BigLog日志相关 2.1、检查biglog状态是否开启 声明: 当前为mysql版本5.7 当前为mysql版本5.7****当前为mysql版本5.7 2.1.1、Navicat工具执行 SHOW VARIABLES LIKE LOG_BIN%;OFF 是未开启状态&#xff0c;如果不是ON 开启状态需要开启为ON。{默认情况下就是关闭状态} 2.…

避雷,Ubuntu通过ollama本地化部署deepseek,open-webui前端显示

0.如题&#xff0c;预期在Ubuntu上本地化部署DeepSeek&#xff0c;通过浏览器访问达到chatgpt的对话效果。 1.裸机&#xff0c;安装Ubuntu。 原有的系统盘采用大白菜&#xff0c;下载24.04.1的镜像&#xff0c;插到电脑上&#xff0c;无法识别&#xff0c;重新查到笔记本&…

HCIA项目实践--静态路由的拓展配置

7.7 静态路由的拓展配置 网络中的两个重要思想&#xff1a; &#xff08;1&#xff09; 实的不行来虚的&#xff1b; &#xff08;2&#xff09; 范围太大&#xff0c;划分范围。&#xff08;分治&#xff09; 7.7.1 负载均衡 &#xff08;1&#xff09;定义 负载均衡是一种网…

缓存三大问题及其解决方案

缓存三大问题及其解决方案 1. 前言 ​ 在现代系统架构中&#xff0c;缓存与数据库的结合使用是一种经典的设计模式。为了确保缓存中的数据与数据库中的数据保持一致&#xff0c;通常会给缓存数据设置一个过期时间。当系统接收到用户请求时&#xff0c;首先会访问缓存。如果缓…

Unity崩溃后信息结合符号表来查看问题

目录 SO文件符号表对调试和分析的重要性调试方面分析方面 错误数据安装Logcat解释符号表设置符号文件路径生成解析 相关参考 SO文件 so 文件&#xff08;Shared Object File&#xff0c;共享目标文件&#xff09;和符号表紧密相关&#xff0c;它们在程序的运行、调试和分析过程…

DeepSeek官方发布R1模型推荐设置

今年以来&#xff0c;DeepSeek便在AI领域独占鳌头&#xff0c;热度一骑绝尘。其官方App更是创造了惊人纪录&#xff0c;成为史上最快突破3000万日活的应用&#xff0c;这一成绩无疑彰显了它在大众中的超高人气与强大吸引力。一时间&#xff0c;各大AI及云服务厂商纷纷投身其中&…

STM32 ADC介绍(硬件原理篇)

目录 背景 AD转换器 采样与保持 量化 编码 AD转换器转换原理 DA转换原理 AD转换原理 1.逐次逼近型AD转换器 2.并联比较型AD转换器 编码器 同步D触发器和边沿D触发器 基本RS触发器 同步RS触发器 同步D触发器 边沿型D触发器&#xff08;维持-阻塞D触发器&#xff…

pytest测试专题 - 1.2 如何获得美观的测试报告

<< 返回目录 1 pytest测试专题 - 1.2 如何获得美观的测试报告 1.1 背景 虽然pytest命令的报文很详细&#xff0c;用例在执行调试时还算比较方便阅读和提取失败信息&#xff0c; 但对于大量测试用例运行时&#xff0c;可能会存在以下不足 报文被冲掉测试日志没法归档 …

Bash 中的运算方式

目录 概述&#xff1a; 1. (()) 运算符 2. let 命令 3. expr 命令 4. $[] 直接运算 5. bc&#xff08;计算器&#xff0c;支持浮点数&#xff09; 6. awk&#xff08;强大的文本处理工具&#xff0c;也可计算&#xff09; 概述&#xff1a; Bash 本身只支持整数运算&am…

超纯水设备的智能化控制系统为用户带来安全简便的操作体验

随着信息技术的发展&#xff0c;智能化已经成为工业装备的重要发展方向之一。超纯水设备在这方面也走在了前列&#xff0c;配备了高性能的PLC控制系统及人机交互界面&#xff0c;实现了全方位的智能监控和自动化操作。本文将重点介绍该设备的智能化控制系统&#xff0c;探讨它如…

性格测评小程序03搭建用户管理

目录 1 创建数据源2 搭建后台3 开通权限4 搭建启用禁用功能最终效果总结 性格测评小程序我们期望是用户先进行注册&#xff0c;注册之后使用测评功能。这样方便留存用户的联系信息&#xff0c;日后还可以推送对应的相关活动促进应用的活跃。实现这个功能我们要先创建数据源&…

Linux-C/C++《七、字符串处理》(字符串输入/输出、C 库中提供的字符串处理函数、正则表达式等)

字符串处理在几乎所有的编程语言中都是一个绕不开的话题&#xff0c;在一些高级语言当中&#xff0c;对字符串的处理支 持度更是完善&#xff0c;譬如 C、 C# 、 Python 等。若在 C 语言中想要对字符串进行相关的处理&#xff0c;譬如将两个字符串进行拼接、字符串查找、两个…

基于若依开发的工程项目管系统开源免费,用于工程项目投标、进度及成本管理的OA 办公开源系统,非常出色!

一、简介 今天给大家推荐一个基于 RuoYi-Flowable-Plus 框架二次开发的开源工程项目管理系统&#xff0c;专为工程项目的投标管理、项目进度控制、成本管理以及 OA 办公需求设计。 该项目结合了 Spring Boot、Mybatis、Vue 和 ElementUI 等技术栈&#xff0c;提供了丰富的功能…

uni-app 学习(一)

一、环境搭建和运行 &#xff08;一&#xff09;创建项目 直接进行创建 &#xff08;二&#xff09;项目结构理解 pages 是页面 静态资源 打包文件&#xff0c;看我们想输出成什么格式 app.vue 页面的入口文件 main.js 是项目的入口文件 存放对打包文件的配置 pages 存放整…

【git-hub项目:YOLOs-CPP】本地实现03:跑自己的实例分割模型

本节博客,我们继续讲解,如何在cpu+windows上,跑通自己的实例分割模型。 目录 模型 类别名称 量化 导出模型 拉取最新代码 进入官网ultralytics 模型 该项目包括存储在 models 和 quantized_models 目录中的各种预训练标准 YOLO 模型: 模型类型模型名称标准模型yolo5…

OpenEuler学习笔记(三十):在OpenEuler上搭建3D建模环境

在OpenEuler上搭建3D建模环境&#xff0c;通常可以选择一些常见的3D建模软件&#xff0c;如Blender、FreeCAD等。以下以搭建Blender和FreeCAD这两款软件的使用环境为例&#xff0c;为你详细介绍搭建步骤。 搭建Blender 3D建模环境 1. 更新系统软件包 首先&#xff0c;确保系…

把 DeepSeek1.5b 部署在显卡小于4G的电脑上

这里写自定义目录标题 介绍准备安装 Ollama查看CUDA需要版本安装CudaToolkit检查Cuda是否装好设置Ollama环境变量验证是否跑在GPU上ollama如何导入本地下载的模型安装及配置docker安装open-webui启动open-webui开始对话 调整gpu精度 介绍 Deepseek1.5b能够运行在只用cpu和gpu内…

基于 Filebeat 的日志收集

在现代分布式系统中&#xff0c;日志数据作为关键的监控与故障排查依据&#xff0c;越来越受到重视。本文将深入探讨 Filebeat 的技术原理、配置方法及在 ELK&#xff08;Elasticsearch、Logstash、Kibana&#xff09;生态系统中的应用&#xff0c;帮助开发者构建高效、稳定的日…

Python教程108:针对面向对象Class类知识要点,源码示例再演示

类的基础结构&#xff0c;比如定义类、初始化方法__init__&#xff0c;然后实例化对象。然后是类的属性&#xff0c;包括实例属性和类属性。接着是方法&#xff0c;比如实例方法、类方法、静态方法的区别。还有继承和多态&#xff0c;这是面向对象的重要部分。可能还需要提到特…

如何在Excel和WPS中进行翻译

文档翻译我们可以用在线翻译工具&#xff0c;Excel工作表的翻译使用在线翻译工具就不是特别方便&#xff0c;那么如何快速进行翻译呢&#xff0c;我们今天介绍在不同的场景下如何利用翻译函数和Python程序来实现单元格的快速翻译。 一、在wps中进行翻译 WPS是我们常用的办公软…