java简单实现请求deepseek
1.deepseek的api创建
deepseek官网链接
点击右上API开放平台后找到API keys 创建APIkey:



注意:创建好的apikey只能在创建时可以复制,要保存好
2.java实现请求deepseek
使用springboot+maven
2.1 pom文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.2</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.demo</groupId><artifactId>deepseek-java</artifactId><version>0.0.1-SNAPSHOT</version><name>deepseek-java</name><description>Demo project for Spring Boot</description><properties><java.version>21</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>RELEASE</version><scope>compile</scope></dependency><dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20231013</version></dependency><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.12.0</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><repositories><repository><id>maven-ali</id><url>http://maven.aliyun.com/nexus/content/groups/public//</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy><checksumPolicy>fail</checksumPolicy></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>public</id><name>aliyun nexus</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></pluginRepository></pluginRepositories></project>
2.2 json转化文件:
参数可以参考DeepSeek API 文档
import org.json.JSONArray;
import org.json.JSONObject;/*** @Description:自定义json转化* @Author:* @Date: 2025/2/20* @Version: v1.0*/
public class JsonExample {/*** toJson* @param msg 你要输入的内容* @param model 模型类型 例如 deepseek-chat、deepseek-reasoner* @return 组装好的json数据*/public static String toJson(String msg,String model){// 创建JSON对象JSONObject json = new JSONObject();// 创建messages数组JSONArray messages = new JSONArray();// 添加第一个messageJSONObject systemMessage = new JSONObject();systemMessage.put("content", "You are a helpful assistant");systemMessage.put("role", "system");messages.put(systemMessage);// 添加第二个messageJSONObject userMessage = new JSONObject();userMessage.put("content", msg);userMessage.put("role", "user");messages.put(userMessage);// 将messages数组添加到JSON对象json.put("messages", messages);// 添加其他字段json.put("model", model);json.put("frequency_penalty", 0);json.put("max_tokens", 2048);json.put("presence_penalty", 0);// 添加response_format对象JSONObject responseFormat = new JSONObject();responseFormat.put("type", "text");json.put("response_format", responseFormat);// 添加其他字段json.put("stop", JSONObject.NULL);json.put("stream", false);json.put("stream_options", JSONObject.NULL);json.put("temperature", 1);json.put("top_p", 1);json.put("tools", JSONObject.NULL);json.put("tool_choice", "none");json.put("logprobs", false);json.put("top_logprobs", JSONObject.NULL);// 控制台打印输出JSON字符串并且使用2个空格进行缩进//System.out.println(json.toString(2));return json.toString();}
}
转化后JSON如下:
{"messages": [{"content": "You are a helpful assistant","role": "system"},{"content": "Hi","role": "user"}],"model": "deepseek-chat","frequency_penalty": 0,"max_tokens": 2048,"presence_penalty": 0,"response_format": {"type": "text"},"stop": null,"stream": false,"stream_options": null,"temperature": 1,"top_p": 1,"tools": null,"tool_choice": "none","logprobs": false,"top_logprobs": null
}
2.2 实现类:
import okhttp3.*;import java.io.IOException;/*** @Description:* @Author:* @Date: 2025/2/20* @Version: v1.0*/
public class MyDeepSeekClient {private static final String API_URL = "https://api.deepseek.com/chat/completions"; // 替换为实际的API URLprivate static final String API_KEY = "你的APIkey"; // 替换为实际的API密钥public static void main(String[] args) {try {String json = JsonExample.toJson("你好", "deepseek-chat");OkHttpClient client = new OkHttpClient().newBuilder().build();MediaType mediaType = MediaType.parse("application/json");RequestBody body = RequestBody.create(mediaType, json);Request request = new Request.Builder().url(API_URL)//deepseek的API.method("POST", body).addHeader("Content-Type", "application/json").addHeader("Accept", "application/json").addHeader("Authorization", "Bearer "+API_KEY)//deepseek的API_KEY.build();// 异步发送 POST 请求client.newCall(request).enqueue(new Callback() {@Overridepublic void onFailure(Call call, IOException e) {e.printStackTrace();}@Overridepublic void onResponse(Call call, Response response) throws IOException {try {if (response.isSuccessful()) {//判断响应是否成功// 成功System.out.println("状态码: " + response.code());System.out.println("响应体: " + response.body().string());} else {// 失败System.out.println("状态码: " + response.code());System.out.println("响应体: " + response.body().string());}} finally {// 关闭响应体,防止资源泄漏response.close();}}});} catch (Exception e) {e.printStackTrace();}}
}
输入结果如下:
状态码: 200
响应体: {"id":"6d83333a-ac8e-4ebf-9030-dc4e5ec620a3","object":"chat.completion","created":1740040067,"model":"deepseek-chat","choices":[{"index":0,"message":{"role":"assistant","content":"你好!很高兴见到你。有什么我可以帮忙的吗?"},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":9,"completion_tokens":11,"total_tokens":20,"prompt_tokens_details":{"cached_tokens":0},"prompt_cache_hit_tokens":0,"prompt_cache_miss_tokens":9},"system_fingerprint":"fp_3a5770e1b4"}
注意事项:
-
响应体大小:如果响应体较大,直接调用
responseBody.string()可能会占用大量内存。对于大文件或流式数据,可以使用responseBody.byteStream()或responseBody.charStream()。
相关文章:
java简单实现请求deepseek
1.deepseek的api创建 deepseek官网链接 点击右上API开放平台后找到API keys 创建APIkey: 注意:创建好的apikey只能在创建时可以复制,要保存好 2.java实现请求deepseek 使用springbootmaven 2.1 pom文件: <?xml version&…...
Ext系列文件系统 -- 磁盘结构,磁盘分区,inode,ext文件系统,软硬链接
目录 1.理解硬盘 1.1 磁盘、服务器、机柜、机房 1.2 磁盘物理结构 1.3 磁盘的存储结构 1.4 磁盘的逻辑结构 1.4.1 理解逻辑结构 1.4.2 真实过程 1.5 CHS地址和LBA地址的相互转换 2.引入文件系统 2.1 “块”概念 2.2 “分区”概念 2.3 “inode”概念 3.ext2文件系…...
PyTorch Tensor 形状变化操作详解
PyTorch Tensor 形状变化操作详解 在深度学习中,Tensor 的形状变换是非常常见的操作。PyTorch 提供了丰富的 API 来帮助我们调整 Tensor 的形状,以满足模型输入、计算或数据处理的需求。本文将详细介绍 PyTorch 中常见的 Tensor 形状变换操作࿰…...
文字识别软件cnocr学习笔记
• 安装 pip install cnocr • 基础的使用方法 首次运行会下载安装模型,如果没有梯子,会报错: 在网络上查找cnocr的模型资源,并下载到本地。https://download.csdn.net/download/qq_33464428/89514689?ops_request_misc%257B%2…...
本地部署DeepSeek R1 + 界面可视化open-webui【ollama容器+open-webui容器】
本地部署DeepSeek R1 界面可视化open-webui 本文主要讲述如何用ollama镜像和open-webui镜像部署DeepSeek R1, 镜像比较方便我们在各个机器之间快速部署。 显卡推荐 模型版本CPU内存GPU显卡推荐1.5B4核8GB非必需4GBRTX1650、RTX20607B、8B8核16GB8GBRTX3070、RTX…...
macOS部署DeepSeek-r1
好奇,跟着网友们的操作试了一下 网上方案很多,主要参考的是这篇 DeepSeek 接入 PyCharm,轻松助力编程_pycharm deepseek-CSDN博客 方案是:PyCharm CodeGPT插件 DeepSeek-r1:1.5b 假设已经安装好了PyCharm PyCharm: the Pyth…...
基于STM32与BD623x的电机控制实战——从零搭建无人机/机器人驱动系统
系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 一、为什么选择这两个芯片?1.1 STM32微控制器1.2 ROHM BD623x电机驱动 二、核心控制原理详解2.1 H桥驱动奥…...
基于ffmpeg+openGL ES实现的视频编辑工具-字幕添加(六)
在视频编辑领域,字幕的添加是一项极为重要的功能,它能够极大地丰富视频内容,提升观众的观看体验。当我们深入探究如何实现这一功能时,FreeType 开源库成为了强大助力。本文将详细阐述借助 FreeType 库生成字幕数据的过程,以及如何实现字幕的缩放、移动、旋转、颜色修改、对…...
C++中const T为什么少见?它有什么用途?
在C中,右值引用(T&&)是移动语义和完美转发的核心特性之一,但你是否注意到,const T&&(const右值引用)却很少被使用?它到底有什么用途? 今天我们就来深入…...
Leetcode 位计算
3095. 或值至少 K 的最短子数组 I 3097. Shortest Subarray With OR at Least K II class Solution:def minimumSubarrayLength(self, nums: List[int], k: int) -> int:n len(nums)bits [0] * 30res infdef calc(bits):return sum(1 << i for i in range(30) if…...
SpringBoot3.x整合WebSocket
SpringBoot3.x整合WebSocket 本文主要介绍最新springboot3.x下如何整合WebSocket. WebSocket简述 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,它允许在浏览器和服务器之间进行实时的、双向的通信。相对于传统的基于请求和响应的 HTTP 协议ÿ…...
猿大师办公助手对比其他WebOffice在线编辑Office插件有什么优势
1. 原生Office功能完整嵌入,排版一致性保障 猿大师办公助手直接调用本地安装的微软Office、金山WPS或永中Office,支持所有原生功能(如复杂公式、VBA宏等),确保网页编辑与本地打开的文档排版完全一致。 提供OLE嵌入和完…...
STM32创建静态库lib
创建静态库lib 1. 新建工程1.1 创建工程文件夹1.2 编写用户相关代码1.2.1 stm32f4xx_it.h1.2.2 stm32f4xx_it.c1.2.3 标准库配置:stm32f4xx_conf.h1.2.4 HAL库的配置:stm32f4xx_hal_conf.h1.2.5 LL库配置:stm32f4xx_ll_conf.h 1.3 移植通用文…...
Hive JOIN过滤条件位置玄学:ON vs WHERE的量子纠缠
Hive JOIN过滤条件位置玄学:ON vs WHERE的量子纠缠 作为数据工程师,Hive JOIN就像吃火锅选蘸料——放错位置味道全变!今天带你破解字节/阿里等大厂高频面试题:ON和WHERE后的过滤条件究竟有什么不同? 一、核心差异对比表 特性ON子句WHERE子句执行时机JOIN操作时JOIN完成后…...
MAC快速本地部署Deepseek (win也可以)
MAC快速本地部署Deepseek (win也可以) 下载安装ollama 地址: https://ollama.com/ Ollama 是一个开源的大型语言模型(LLM)本地运行框架,旨在简化大模型的部署和管理流程,使开发者、研究人员及爱好者能够高效地在本地环境中实验和…...
javaEE-13.spring MVC
目录 什么是spring web mvc: 什么是MVC: 一.创建一个spring项目 二.实现功能: 创建helloController.java项目: 建立连接: RequestMapping注解: 1.RequestMapping注解的使用: 2. RequestMapping 是GET还是POST请求 3.指定请求方法 RestControll…...
C/C++ | 每日一练 (2)
💢欢迎来到张胤尘的技术站 💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 C/C | 每日一练 (2)题目参考答案封装继承多态虚函数底…...
Nginx 常用命令和部署详解及案例示范
一、Nginx常用命令 1.1 启动 Nginx 要启动 Nginx 服务,可以使用以下命令: sudo systemctl start nginx1.2 停止 Nginx 如果需要停止 Nginx 服务,可以使用以下命令: sudo systemctl stop nginx1.3 重启 Nginx 在修改了 Nginx…...
GO大模型应用开发框架-
Eino 旨在提供基于 Golang 语言的终极大模型应用开发框架。 它从开源社区中的诸多优秀 LLM 应用开发框架,如 LangChain 和 LlamaIndex 等获取灵感,同时借鉴前沿研究成果与实际应用,提供了一个强调简洁性、可扩展性、可靠性与有效性࿰…...
保姆级!springboot访问Ollama API并调用DeepSeek模型 Api
要在springboot中访问Ollama API并调用DeepSeek模型,你需要遵循以下步骤。首先,确保你有一个有效的Ollama服务器实例运行中,并且DeepSeek模型已经被加载。 可以参考我的这篇博客 保姆级!使用Ollama本地部署DeepSeek-R1大模型 并java通过api 调用 使用Spring Boot + Sprin…...
TV Bro:专为电视遥控器优化的智能浏览器,彻底改变大屏上网体验
TV Bro:专为电视遥控器优化的智能浏览器,彻底改变大屏上网体验 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro 还在为智能电视上网的糟糕体验而烦…...
DeepSeek总结的Postgres 扩展天花板:当一个实例试图包揽一切时
原文链接:https://www.pgedge.com/blog/the-scaling-ceiling-when-one-postgres-instance-tries-to-be-everything标题:扩展天花板:当一个 Postgres 实例试图包揽一切时 作者:Shaun Thomas | 2026年4月24日 数据库领域一直存在一种…...
低查重AI教材编写秘籍!揭秘AI写教材工具,快速生成高质量教材!
AI助力教材编写:多款工具介绍与功能剖析 在编写教材的过程中,速度总是让人感到无比艰难。尽管框架和相关资料早已准备就绪,却始终在内容创作上拖延不前——一句话从头到尾反复推敲,却始终不满意;章节间的衔接过渡&…...
ESP32-CAM通过TCP传图,如何解决常见的网络中断和图片乱码问题?
ESP32-CAM TCP图像传输实战:破解网络中断与数据乱码的工程级方案 当你兴奋地完成ESP32-CAM的基础TCP图像传输demo后,现实往往给你当头一棒——WiFi信号波动导致频繁断连、接收到的图片出现诡异马赛克、服务端解析时内存溢出...这些才是真实开发中的常态。…...
三月七小助手:崩坏星穹铁道终极自动化游戏助手完整指南
三月七小助手:崩坏星穹铁道终极自动化游戏助手完整指南 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 还在为《崩坏:星穹铁道》中那些重复繁…...
避坑- Qwen3-TTS语言大模型长文本生成的语速变快或声音异常
Qwen3-TTS 长文本生成的语速 Bug实测Qwen3-TTS 模型在处理较长文本时存在一个已知问题:生成到后面,语速会不受控制地越来越快,即使把语速要求写在指令里也效果不好。这个问题的根本原因在于模型的架构设计。Qwen3-TTS 基于自回归语言模型生成…...
长提示词优化5大技巧,让AI大模型更稳定可控
随着Sora、Gen-3、Midjourney V6等AI大模型的飞速发展,我们对AI生成内容的需求和期待已发生质的飞跃。从最初简单的“生成一张符合要求的图片”,升级为“创作一段有逻辑、有分镜、有质感的完整剧情”。随之而来的是Prompt的不断拉长。 长提示词带来的副…...
AutoCAD字体缺失终结者:FontCenter插件完整使用指南
AutoCAD字体缺失终结者:FontCenter插件完整使用指南 【免费下载链接】FontCenter AutoCAD自动管理字体插件 项目地址: https://gitcode.com/gh_mirrors/fo/FontCenter 你是否经常在打开AutoCAD图纸时遇到字体缺失的困扰?FontCenter正是为解决这一…...
Pwnagotchi社区贡献指南:如何参与项目开发与维护
Pwnagotchi社区贡献指南:如何参与项目开发与维护 【免费下载链接】pwnagotchi-bookworm (⌐■_■) - Raspberry Pi instrumenting Bettercap for Wi-Fi pwning. 项目地址: https://gitcode.com/gh_mirrors/pw/pwnagotchi-bookworm Pwnagotchi是一款基于Raspb…...
Node.js Web应用脚手架Parchi:快速构建可扩展的现代项目架构
1. 项目概述:一个轻量级、可扩展的Web应用脚手架最近在和朋友讨论如何快速启动一个中小型Web项目时,我们常常会陷入一个两难境地:要么从零开始,手动配置路由、数据库连接、用户认证、日志系统等一大堆基础设施,这个过程…...
