deepseek实战教程-第四篇开放平台接口文档使用
第二篇讲解了如何本地安装大模型,然后编写一个基于js+springboot的项目,通过页面实现对话的功能。实际上,上面的demo用到是deepseek提供的接口,那么deepseek共提供了多少接口呢?这就要讨论到deepseek的接口库了,即api。本文介绍deepseek的官网api,以及提供了哪些接口可以供我们调用,能完成哪些功能。
一.api的官方地址
首先进入官方地址:https://www.deepseek.com/ 找到入口:
进入api开放平台
用手机号登录之后,进入页面:
右侧点击 接口文档
进入api文档界面

右侧主要关注这三部分:快速开始 、API 文档、API 指南

快速开始:通过该章,可以快速进入demo编写的阶段(调用的如果是官网开放的模型,需要配置官方的base_url和api_key,如果使用的是本地自己部署的,则只需要地址,不需要密码)

接下来我们分别来介绍这三部分
二.开放接口的详细内容
1.快速开始
1.1 这章节告诉我们通过什么网址,端口和方式来访问模型提供的开放功能。
提供了curl方式,python语言和nodejs的调用示例。
本文一nodejs为例:
// Please install OpenAI SDK first: `npm install openai`import OpenAI from "openai";const openai = new OpenAI({baseURL: 'https://api.deepseek.com',apiKey: '<DeepSeek API Key>'
});async function main() {const completion = await openai.chat.completions.create({messages: [{ role: "system", content: "You are a helpful assistant." }],model: "deepseek-chat",});console.log(completion.choices[0].message.content);
}main();
上篇文章是以java编写的,当然本质上都是http协议的接口,通过java的http客户端代码也可以很方便的调用,这里参考上文,不再赘述。
1.2 Temperature
Temperature 属性是大模型很重要的一个配置项,通俗理解是用来表示模型的“想象力”的,这个值越大,其发散能力越强,聚集能力也相应变弱。
不同的配置适合不同的场合,就好像左右脑,有的逻辑思维强,需要用大脑左半球,感性的知识需要用大脑右半球,这里的 代码生成/数学解题 等配置成0 最合适,不适合发散, 创意类写作/诗歌创作类的需要发散思维的,需要配置更高一些,例如官网给的示例1.5.这里需要根据自己的业务场合进行配置。默认1.0,适合数据分析和数据抽取的业务场景,特别提到通用对话最好也也配置一下,改为1.3

1.3 token用量
token用量也是大模型自然语言的非常重要的一个概念,直观的理解为“字”或“词”;通常 1 个中文词语、1 个英文单词、1 个数字或 1 个符号计为 1 个 token。
一般情况下模型中 token 和字数的换算比例大致如下:
- 1 个英文字符 ≈ 0.3 个 token。
- 1 个中文字符 ≈ 0.6 个 token。

这个值一般也是我们量化计算机算力的一个指标。
2.API 文档
2.1 基本信息
这里定义了http接口的
HTTP Authorization Scheme为bearer

2.2 对话补全接口
详细解释了一个接口:
https://api.deepseek.com/chat/completions
这个接口是用来做对话补全的,包括接口的入参和返回结构。也是http接口,post的,

调用接口的示例如下:
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"messages\": [\n {\n \"content\": \"You are a helpful assistant\",\n \"role\": \"system\"\n },\n {\n \"content\": \"Hi\",\n \"role\": \"user\"\n }\n ],\n \"model\": \"deepseek-chat\",\n \"frequency_penalty\": 0,\n \"max_tokens\": 2048,\n \"presence_penalty\": 0,\n \"response_format\": {\n \"type\": \"text\"\n },\n \"stop\": null,\n \"stream\": false,\n \"stream_options\": null,\n \"temperature\": 1,\n \"top_p\": 1,\n \"tools\": null,\n \"tool_choice\": \"none\",\n \"logprobs\": false,\n \"top_logprobs\": null\n}");
Request request = new Request.Builder().url("https://api.deepseek.com/chat/completions").method("POST", body).addHeader("Content-Type", "application/json").addHeader("Accept", "application/json").addHeader("Authorization", "Bearer <TOKEN>").build();
Response response = client.newCall(request).execute();
这个接口其实跟我们通过网页对话是类似的参数,采样温度的设置,token长度的设置
可以选择返回是流式输出还是json模式
2.3FIM 补全(Beta)
接口地址:https://api.deepseek.com/beta/completions
特别注意:
用户需要设置 base_url="https://api.deepseek.com/beta" 来使用此功能。
同样是一个http接口,具体不详细赘述

2.4 模型(Model)列出模型
接口地址:
https://api.deepseek.com/models
get方式接口
列出可用的模型列表,并提供相关模型的基本信息。

代码示例:
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder().url("https://api.deepseek.com/models").method("GET", body).addHeader("Accept", "application/json").addHeader("Authorization", "Bearer <TOKEN>").build();
Response response = client.newCall(request).execute();
3.API 指南
https://api-docs.deepseek.com/zh-cn/guides/reasoning_model
本章是做了几个概念的解释
3.1推理模型 (deepseek-reasoner)

3.2多轮对话
本指南将介绍如何使用 DeepSeek /chat/completions API 进行多轮对话。

3.3对话前缀续写(Beta)

3.4FIM 补全(Beta)
在 FIM (Fill In the Middle) 补全中,用户可以提供前缀和后缀(可选),模型来补全中间的内容。FIM 常用于内容续写、代码补全等场景。

3.5JSON Output
在很多场景下,用户需要让模型严格按照 JSON 格式来输出,以实现输出的结构化,便于后续逻辑进行解析。
DeepSeek 提供了 JSON Output 功能,来确保模型输出合法的 JSON 字符串。

3.6Function Calling
Function Calling 让模型能够调用外部工具,来增强自身能力。

3.7上下文硬盘缓存
DeepSeek API 上下文硬盘缓存技术对所有用户默认开启,用户无需修改代码即可享用。
用户的每一个请求都会触发硬盘缓存的构建。若后续请求与之前的请求在前缀上存在重复,则重复部分只需要从缓存中拉取,计入“缓存命中”。

3.8提示库
各种提示样例,学习demo

三.总结
通过上面的介绍,我们就基本掌握了deepseek提供的基础的开发api功能,我们可以通过学习掌握这些api接口,来在自己的项目中调用所需接口,完成我们自己的业务功能,实现和我们的项目的嵌入。当然这是程序员的工作,并不是没有编程基础的人做的事情,希望我们能够尽快掌握并进入大模型的业务开发中,实现工作效率和业务效率的双重提升
通过本章我们已经可以完成deepseek的应用开发了。但是这一步还不够,我们下一步需要了解大模型本身更多原理性的知识,下一章我会讲解如何获取并下载开源的deepseek源码,并通过源码来分析deepseek的架构,以及怎样学习deepseek更核心和模型本身的知识
相关文章:
deepseek实战教程-第四篇开放平台接口文档使用
第二篇讲解了如何本地安装大模型,然后编写一个基于jsspringboot的项目,通过页面实现对话的功能。实际上,上面的demo用到是deepseek提供的接口,那么deepseek共提供了多少接口呢?这就要讨论到deepseek的接口库了…...
Android第六次面试总结(Java设计模式二)
在 Android 开发里,ListView 和 RecyclerView 是常用的视图组件,用于展示大量数据列表。不过,这些视图组件本身无法直接展示原始数据源,需要借助 Adapter(适配器)把数据源适配成视图能够展示的数据…...
一站式电脑工具箱,功能全面且实用
小明工具箱是一款集成了系统设置、维护工具、实用工具、图像处理等四大类工具的电脑工具箱,涵盖了上百种实用工具,能够满足用户在文件管理、文本处理、系统优化、图像处理等多方面的需求。 初次使用,需双击软件,便会自动将工具解压…...
那些正常的动态规划
文章目录 前言动态规划到底是啥? 线性dp最长上升子序列子集和子序列和子串的区别内容分析 最大上升子序列例题1——[NOIP2004 提高组] 合唱队形分析 最长公共子序列最长公共子串 平面dp例题2——[NOIP2000 提高组] 方格取数分析 例题3——[NOIP2008 提高组] 传纸条分…...
Opencv计算机视觉编程攻略-第二节 图像像素操作
第二节 图像像素操作 1.访问像素值2.用指针扫描图像3.扫描图像并访问相邻像素4.实现简单的图像运算5.图像重映射 1.访问像素值 以椒盐噪声为例展示像素值访问的几种方法 void salt(cv::Mat image, int n) {// C11 random number generatorstd::default_random_engine generat…...
华为交换相关
端口模式 (1)access:只能属于单个VLAN,一般用于连接计算机端口 (2)trunk:端口允许多个VLAN通过,可以接收和发送多个VLAN报文,默认情况下只有管理VLAN不携带标签信息 &…...
Chrome Performance 面板完全指南:从卡顿到丝滑的终极调试术
1.写在前面 前端性能调试是优化网页加载速度和运行效率的关键步骤,Chrome DevTools 的 Performance 面板 是核心工具; 2.Performance 面板使用步骤 ★ 基础 打开面板 在 Chrome 中按 F12 → 切换到 Performance 标签页。 开始录制 方式一:点击 ⚫️ 圆…...
idea中快速注释函数
在IntelliJ IDEA中,有多种方法可以快速注释函数。 使用快捷键 你可以使用以下快捷键来快速注释函数[3]: 行注释:使用Ctrl/(Windows系统)或Command/(Mac系统)可以在当前行前添加或删除单行注释…...
深入解析Linux网络、安全与容器技术
1. Netfilter:Linux内核的包处理框架 Netfilter 是Linux内核中用于控制网络数据包的核心机制,负责处理数据包的过滤、修改和转发。其核心功能包括: 包过滤(Packet Filtering):根据规则允许或拒绝数据包通过…...
JDK 24:Java 24 中的新功能
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:历代文学,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计…...
java中的枚举类型和c,c++的有区别吗?c,c++的枚举,结构体,联合体,三种数据有什么区别和联系
Java 枚举类型与 C、C 枚举类型的区别 1. 类型安全 Java:Java 的枚举类型是类型安全的。枚举常量是枚举类型的实例,编译器会严格检查传递的参数是否为该枚举类型的有效常量。例如: java Apply enum Color { RED, GREEN, BLUE } // 编译器会检…...
ubuntu服务器server版安装,ssh远程连接xmanager管理,改ip网络连接。图文教程
ventoy启动服务器版iso镜像,注意看server名称,跟之前desktop版ubuntu不一样。没有gui界面。好,进入命令行界面。语言彻底没汉化了,选英文吧,别的更看不懂。 跟桌面版ubuntu类似,选择是否精简系统࿰…...
什么叫税务黑名单?详解税务黑名单的来源。
一、什么叫税务黑名单? 1、税务黑名单是指由税务部门根据相关法律法规和税收管理策,对违反税收法规、逃避纳税义务或其他严重违法违规行为的个人或企业进行记录和公示的名单。 2、被列入税务黑名单意味着该个人或企业在税务方面存在严重的不诚信行为&a…...
计算机二级:基础操作题
一 sinfoinput() info_listsinfo.split(,) print("姓名,年龄") for strname in info_list:snamestrname[:-2]sagestrname[-2:]print("{},{}".format(sname,sage))二 import random as r r.seed(1) sinput("请输入三个整数n,m,…...
python机器学习——新手入门学习笔记
一,概论 1.什么是机器学习 定义: 机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测。 其实就是通过问题和数据,发现规律,并进行预测,与人脑相似。目的就是从历史数据当中获得规律&#x…...
LabVIEW 与 PLC 通讯的常见方式
在工业自动化和数据采集系统中,PLC(可编程逻辑控制器) 广泛用于控制和监测各种设备,而 LabVIEW 作为强大的图形化编程工具,常用于上位机数据处理和可视化。为了实现 LabVIEW 与 PLC 的高效通讯,常见的方法包…...
深度学习 Deep Learning 第9章 卷积网络 CNN
深度学习 Deep Learning 第9章 卷积网络 章节概述 本章深入探讨了卷积网络的原理、变体及其在深度学习中的应用。卷积网络通过卷积操作实现了参数共享和稀疏连接,显著提高了模型的效率和性能。本章首先介绍了卷积操作的基本形式及其在不同数据维度上的应用&#x…...
Tekton系列之实践篇-从触发到完成的完整执行过程
以下介绍的是基于 Gitee 仓库 的 Tekton 工作流程 操作流程 定义task 克隆代码的task # task-clone.yaml apiVersion: tekton.dev/v1beta1 kind: Task metadata:name: git-clone spec:workspaces:- name: source # 工作目录params:- name: repo-url # 你的 Gitee 仓库地址…...
【简单学习】Prompt Engineering 提示词工程
一、Prompt 1、Prompt 是什么? Prompt 是一种人为构造的输入序列,用于引导 GPT 模型根据先前输入的内容生成相关的输出。简单来说,就是你向模型提供的 “提示词”。 在 ChatGpt 中,我们可以通过设计不同的 prompt,让…...
neo4j删除所有数据
neo4j删除所有数据 一次性删除 MATCH (n) DETACH DELETE n ;分批次删除 先删除关系 MATCH ()-[r]->()WITH r LIMIT 100000DELETE rRETURN count(r)在删除节点 MATCH (n)WITH n LIMIT 100000DELETE nRETURN count(n)验证 查询节点总数 MATCH (n) RETURN count(n) AS node…...
零基础入门网络爬虫第5天:Scrapy框架
4周 Srapy爬虫框架 不是一个简单的函数功能库,而是一个爬虫框架 安装:pip install scrapy 检测:scrapy -h Scrapy爬虫框架结构 爬虫框架 爬虫框架是实现爬虫功能的一个软件结构和功能组件集合爬虫框架是一个半成品,能够帮助…...
ARCGIS PRO DSK 栅格数据(Raster)
ArcGIS Pro 中与栅格相关的功能可以在两个单独程序集中的两个命名空间中找到。 1、ArcGIS.Core.dll 中的 ArcGIS.Core.Data.Raster 命名空间提供了栅格类和成员,用于处理栅格数据集、内存栅格、像素块和光标。 2、ArcGIS.Desktop.Mapping.dll 中的 ArcGIS.Desktop.M…...
C#设计模式快速回顾
知识点来源:人间自有韬哥在,豆包 目录 一、七大原则1. 单一职责原则 (Single Responsibility Principle)2. 开放封闭原则 (Open-Closed Principle)3. 里氏替换原则 (Liskov Substitution Principle)4. 接口隔离原则 (Interface Segregation Principle)5…...
分页查询互动问题(用户端)
文章目录 概要整体架构流程技术细节小结 概要 需求分析以及接口设计 技术细节 1.Controller层 GetMapping("/page")ApiOperation("分页查询问题")public PageDTO<QuestionVO> queryQuestionPage(QuestionPageQuery query){return questionService…...
【全队项目】智能学术海报生成系统PosterGenius(项目介绍)
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏:🏀大模型实战训练营_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前…...
P5356 [Ynoi Easy Round 2017] 由乃打扑克 Solution
Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1,a2,⋯,an),有 m m m 个操作分两种: add ( l , r , x ) \operatorname{add}(l,r,x) add(l,r,x):对每个 i ∈ [ l , r ] i\in[l,r] i∈[l,r] 执行 …...
【线程安全问题的原因和方法】【java形式】【图片详解】
在本章节中采用实例图片的方式,以一个学习者的姿态进行描述问题解决问题,更加清晰明了,以及过程中会发问的问题都会一一进行呈现 目录 线程安全演示线程不安全情况图片解释: 将上述代码进行修改【从并行转化成穿行的方式】不会出…...
MySQL-----视图与索引
目录 视图 1.视图 2.操作 11.索引 1.定义 2.优缺点: 3.分类 4.索引的设计原则 5.索引的使用 作业 视图 1.视图 ❓如果需要在原表中隐藏部分字段时,怎么办? 视图 📖视图: 是一个没有存储任何数据的表,可以对其CRUD视图…...
【差分隐私相关概念】约束下的列联表边缘分布计算方法
列联表及其边缘分布的详细解释 一、列联表的定义 列联表(Contingency Table) 是一种用于表示 多个分类变量联合分布 的表格。其核心是通过多维数组记录不同属性组合的频次。以下是关键点: 分类属性: 设有 k k k 个分类属性 A …...
解决IDEA中maven找不到依赖项的问题
直接去官网找到对应的依赖项jar包,并且下载到本地,然后安装到本地厂库中。 Maven官网:https://mvnrepository.com/ 一、使用mvn install:install-file命令 Maven提供了install:install-file插件,用于手动将jar包安装到本地仓库…...
