深度求索—DeepSeek API的简单调用(Java)
DeepSeek简介
DeepSeek(深度求索)是由中国人工智能公司深度求索(DeepSeek Inc.)研发的大规模语言模型(LLM),专注于提供高效、智能的自然语言处理能力,支持多种场景下的文本生成、对话交互和多模态任务。
网页体验链接
DeepSeek开放平台
简单实现DeepSeek API的调用
1、API key申请
- 登陆注册,实名认证之后,在deepseek开放平台上申请APIkey:
- 点击创建API key
- 输入名称即可完成创建,创建后会获得一个key
注:注意保存好这个key,点击关闭后无法再重新点开查看,如果丢失则需要重新进行创建
2、查看接口文档
DeepSeek接口文档
参数
- base_url: https://api.deepseek.com
- api_key: apply for an key
3、简单的一个调用案例
- 在pom.xml文件中导入依赖
<dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.9.1</version> <!-- 请检查最新版本 --></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.8</version> <!-- 请检查最新版本 --></dependency><dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20231013</version></dependency>
- 创建一个简单的案例
import okhttp3.*;
import org.json.JSONArray;
import org.json.JSONObject;import java.io.IOException;
import java.util.Scanner;public class DeepSeekClient {private static final String BASE_URL = "https://api.deepseek.com/v1/chat/completions"; // API 端点private static final String API_KEY = "***"; // 替换为自己的 API Keyprivate final OkHttpClient client;public DeepSeekClient() {this.client = new OkHttpClient();}public String sendChatCompletionRequest(JSONArray messages) throws IOException {// 构建请求体JSONObject requestBody = new JSONObject();requestBody.put("model", "deepseek-chat"); // 模型名称requestBody.put("messages", messages); // 包含对话历史的 messages// 创建请求体RequestBody body = RequestBody.create(requestBody.toString(),MediaType.parse("application/json"));// 创建请求Request request = new Request.Builder().url(BASE_URL).post(body).addHeader("Authorization", "Bearer " + API_KEY).addHeader("Content-Type", "application/json").build();// 发送请求并获取响应try (Response response = client.newCall(request).execute()) {if (!response.isSuccessful()) {throw new IOException("Unexpected code: " + response.code());}return response.body().string();}}public static void main(String[] args) {DeepSeekClient client = new DeepSeekClient();Scanner scanner = new Scanner(System.in);JSONArray messages = new JSONArray(); // 用于保存对话历史// 设置高数老师的角色JSONObject systemMessage = new JSONObject();systemMessage.put("role", "system");systemMessage.put("content", "你是一位高数老师。请用简洁明了的语言回答我的问题。");messages.put(systemMessage);System.out.println("高数老师: 你好!你可以问我任何问题,输入 '退出' 来结束对话。");// 开始对话循环while (true) {System.out.print("你: ");String userInput = scanner.nextLine();// 如果用户输入 "退出",结束对话if ("退出".equalsIgnoreCase(userInput)) {System.out.println("高数老师: 再见!如果有其他问题,随时来找我。");break;}// 将用户输入添加到 messagesJSONObject userMessage = new JSONObject();userMessage.put("role", "user");userMessage.put("content", userInput);messages.put(userMessage);try {// 发送请求并获取 AI 的回复String response = client.sendChatCompletionRequest(messages);JSONObject jsonResponse = new JSONObject(response);JSONArray choices = jsonResponse.getJSONArray("choices");if (choices.length() > 0) {JSONObject firstChoice = choices.getJSONObject(0);JSONObject message = firstChoice.getJSONObject("message");String content = message.getString("content");// 打印 AI 的回复System.out.println("高数老师: " + content);// 将 AI 的回复添加到 messagesJSONObject assistantMessage = new JSONObject();assistantMessage.put("role", "assistant");assistantMessage.put("content", content);messages.put(assistantMessage);}} catch (IOException e) {e.printStackTrace();System.out.println("高数老师: 抱歉,我暂时无法回答你的问题。请稍后再试。");}}scanner.close();}
}
4、运行程序
可以根据自己对AI预先设置的角色进行相关问答测试,以上为该案例的运行结果
相关文章:

深度求索—DeepSeek API的简单调用(Java)
DeepSeek简介 DeepSeek(深度求索)是由中国人工智能公司深度求索(DeepSeek Inc.)研发的大规模语言模型(LLM),专注于提供高效、智能的自然语言处理能力,支持多种场景下的文本生成、对…...
flv实时监控视频
文章目录 前言一、安装二、引入三、使用 前言 开发大屏项目时,可能需要在大屏上展示一个监控画面,此时就可以用的flv.js来展示视频效果 一、安装 npm install flv.js二、引入 import flvjs from flv.js;三、使用 <video ref"videoElement&quo…...

有哪些免费的SEO软件优化工具
随着2025年互联网的不断发展,越来越多的企业意识到在数字营销中,网站的曝光度和排名至关重要。无论是想要提高品牌知名度,还是想要通过在线销售增加收益,SEO(搜索引擎优化)都是一项不可忽视的关键策略。而要…...
跟着ai辅助学习vue3
第一章:基础入门(1 - 2 周) 1. 了解 Vue 3 概述 阅读官方文档简介 访问 Vue 3 官方文档,在首页或简介板块中,重点了解 Vue 3 相较于 Vue 2 的重大变革。比如,Vue 3 采用了 Proxy 实现响应式系统ÿ…...
什么是Mustache
Mustache 是一种轻量级模板引擎,用于将变量插入到模板中生成最终的文本输出。它的设计简单且易于使用,适用于多种编程语言,包括 JavaScript、Python、Ruby、Java 等。 Mustache 的模板语法使用双大括号 {{}} 包裹变量或表达式,用…...

C++,STL容器适配器,priority_queue:优先队列深入解析
文章目录 一、容器概览与核心特性核心特性速览二、底层实现原理1. 二叉堆结构2. 容器适配器架构三、核心操作详解1. 容器初始化2. 元素操作接口3. 自定义优先队列四、实战应用场景1. 任务调度系统2. 合并K个有序链表五、性能优化策略1. 底层容器选择2. 批量建堆优化六、注意事项…...

1.综述 Google 的软件工程读书笔记
Google 的软件工程由Google的多位资深工程师合著,分享了他们在管理Google庞大代码库(超过20亿行代码)过程中总结的经验教训。这本书不仅涵盖了软件工程的理论知识,还结合了Google的实际案例,展示了如何在大规模、复杂的…...
vue框架生命周期详细解析
Vue.js 的生命周期钩子函数是理解 Vue 组件行为的关键。每个 Vue 实例在创建、更新和销毁过程中都会经历一系列的生命周期阶段,每个阶段都有对应的钩子函数,开发者可以在这些钩子函数中执行特定的操作。 Vue 生命周期概述 Vue 的生命周期可以分为以下几…...

复杂电磁环境下无人机自主导航增强技术研究报告——地磁匹配与多源数据融合方法,附matlab代码
本文给出介绍和matlab程序,来实现地磁辅助惯性导航仿真验证,包含地磁基准图构建、飞行轨迹生成、INS误差建模、地磁匹配定位及多源数据融合等模块。通过对比分析验证地磁匹配修正惯性导航累积误差的有效性,可视化显示卫星拒止环境下的航迹修正…...

蓝桥杯---排序数组(leetcode第912题)
文章目录 1.题目重述2.思路分析3.代码解释 1.题目重述 题目的要求是不使用库函数或者是其他的内置的函数(就是已经实现好的函数),也就是这个排序的逻辑需要我们自己进行实现; 2.思路分析 其实这个例子也是很容易理解的ÿ…...
考研高数复习规范
前言 这里记录我的高数复习规范与规划,希望能给需要考研的同学一点启发 规范原因 高数的内容很多,关键的是:会做题、拿高分首先最重要的就是抓住概念。比如有界无界的概念,间断点的概念、极限的概念其次是做题过程中得到的方法…...

Stable diffusion只换衣服的方法
大概看了几个帖子感觉说的都不是很清楚,也大部分都是保持人物一致性,不能只改变衣服,自己摸索了一下,需要使用三个controlnet:一个openpose、一个lineart,一个depth,三个controlnet使用同一个参…...

无人机航迹规划: 梦境优化算法(Dream Optimization Algorithm,DOA)求解无人机路径规划MATLAB
一、梦境优化算法 梦境优化算法(Dream Optimization Algorithm,DOA)是一种新型的元启发式算法,其灵感来源于人类的梦境行为。该算法结合了基础记忆策略、遗忘和补充策略以及梦境共享策略,通过模拟人类梦境中的部分记忆…...

LlamaFactory可视化模型微调-Deepseek模型微调+CUDA Toolkit+cuDNN安装
LlamaFactory https://llamafactory.readthedocs.io/zh-cn/latest/ 安装 必须保证版本匹配,否则到训练时,找不到gpu cuda。 否则需要重装。下面图片仅供参考。因为cuda12.8装了没法用,重新搞12.6 cudacudnnpytorch12.69.612.6最新…...
算法12-贪心算法
一、贪心算法概念 贪心算法(Greedy Algorithm)是一种在每一步选择中都采取当前状态下最优的选择,从而希望导致全局最优解的算法。贪心算法的核心思想是“局部最优,全局最优”,即通过一系列局部最优选择,最…...

js实现点击音频实现播放功能
目录 1. HTML 部分:音频播放控件 2. CSS 部分:样式设置 3. JavaScript 部分:音频控制 播放和暂停音频: 倒计时更新: 播放结束后自动暂停: 4. 总结: 完整代码: 今天通过 HTML…...
matlab平面波展开法计算的二维声子晶体带隙
平面波展开法计算的二维声子晶体带隙,分别是正方与圆形散射体形成正方格子声子晶体,最后输出了能带图的数据,需要自己用画图软件画出来。 列表 平面波展开法计算二维声子晶体带隙/a2.m , 15823 平面波展开法计算二维声子晶体带隙/a4.m , 942…...

Spring Boot (maven)分页3.0版本 通用版
前言: 通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往…...

解决DeepSeek服务器繁忙问题
目录 解决DeepSeek服务器繁忙问题 一、用户端即时优化方案 二、高级技术方案 三、替代方案与平替工具(最推荐简单好用) 四、系统层建议与官方动态 用加速器本地部署DeepSeek 使用加速器本地部署DeepSeek的完整指南 一、核心原理与工具选择 二、…...

小项目第一天
总体实现流程图 智能称重模块流程图 定位追踪模块流程图 防盗报警模块流程图 密码解锁模块流程图 跨平台通信流程图...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...