网站首页 > 技术文章 正文
大家好,我是Jack Bytes,一个专注于将人工智能应用于日常生活的半吊子程序猿,平时主要分享AI、NAS、Docker、搞机技巧、开源项目等。
最近爆肝了几篇DeepSeek的文章,发现很多人不知道API和官方APP有什么区别,或者说不知道API有什么用。
其实使用API可以实现很多DIY的功能,比如:
- 在苹果手机上,通过API将大模型和Siri进行结合,实现语音交互;
- 和备忘录结合,实现将对话内容保存到备忘录中;
- 和微信结合,将生成的消息发送到微信上;
- 和智能家居结合,实现更多的智能场景。
- 等等
今天一文让你搞明白!
一、什么是API
API的全称是:Application Programming Interface,即应用程序编程接口。是一组允许不同软件应用程序之间进行通信、交互和数据交换的规则、协议和工具。
用大白话理解就是:
假如你是一个老板,API就是你的员工,你只需要告诉API要做什么,API就会根据它自己的执行流程,给你返回结果。当然,你给API不同的工具(参数),它会给你返回不同的结果。
API通常由三部分组成:
- URL
- API-Key
- 参数
- 返回结果
简单描述下如何使用:将API-Key和参数发送到指定的URL,然后返回对应的结果
二、如何使用API
下面以DeepSeek为例,介绍一下如何使用API。
目前DeepSeek的API官网处于瘫痪状态:
下面使用Siliconflow为例,介绍一下如何使用API。
按照第一节说的,API通常由三部分组成:URL、API-Key、参数、返回结果。
2.1 URL
一般在服务提供商的文档中,会提供API的调用方式,其中就包含了URL,如下图所示:
在上图中,
https://api.siliconflow.cn/v1/chat/completions就是API对应的URL
2.2 API-Key
服务提供商一般会有一个创建API密钥的功能,如下图所示:
sk开头的一串字母就是API-Key。
2.3 参数
这一部分同样会在API文档里提供说明,如下图所示:
Body部分就是可以自定义的参数,比如:
- model:模型名
- frequency_penalty:用于控制生成文本中重复词语的频率
- max_tokens:生成的最大token数
- stream:是否是流式输出(流式:生成一点,返回一点。非流式:全部生成完再返回)
- temperature:生成回答时的随机程度
- 等等
2.4 返回结果
API返回结果通常是json格式,在API官网文档中同样会给出说明,如下图所示:
Response就是API返回的格式,比如:
- choices:返回的生成的数据,列表格式,列表中的每一项表示一条生成结果,每一项包含了message和finish_reason。其中finish_reason表示是否生成完毕,message表示当前这条消息的结果,在message中,role表示角色,比如助力、系统、用户等等,content是返回的具体内容,reasoning_content表示思维链的内容
- id:当前返回结果的id
- model:是哪个模型生成的结果
- 等等
三、举个例子
其实官方已经给了使用例子了,包含了不同语言或工具的,如cURL、Python、JavaScript、Go、Java,照着抄就行了:
比如,用cURL调用API,可以直接把上面的命令复制一下,将
上面的可能和普通用户距离比较远,那么来看一下在手机上就能操作的例子(苹果手机)。
打开「快捷指令」,并添加一个快捷指令,然后添加一个「获取URL内容」,就可以设置各种URL、API-Key、参数了:
在请求体中,会有文本、数字、数组、词典、布尔值这几个类型,如下图所示:
下面以官方API文档的例子为例,列举下不同字段对应什么类型:
在上图中:
- "model": "deepseek-ai/DeepSeek-V3"是文本类型
- "messages": [ ... ]是数组类型
- { ... } 是词典类型
- "stream": false是布尔值类型
- "temperature": 0.7是数字类型
根据官网文档中的类型进行请求体的设置即可。
四、和官方APP相比有什么区别
官方APP实际上也是在API的基础上,封装了许多其他的功能,比如用户登陆、联网搜索、创建对话等功能,好处是开箱即用,普通用户没有学习成本。
但是如果想自定义一些功能,而官方APP又没有提供,那么我们可以直接使用API进行DIY。
比如:
- 在苹果手机上,通过API将大模型和Siri进行结合,实现语音交互;
- 和备忘录结合,实现将对话内容保存到备忘录中;
- 和微信结合,将生成的消息发送到微信上;
- 和智能家居结合,实现更多的智能场景。
- 等等
使用API能够实现的功能完全取决于你的脑洞有多大!
我是Jack Bytes
一个专注于将人工智能应用于日常生活的半吊子程序猿!
平时主要分享AI、NAS、Docker、搞机技巧、开源项目等技术,喜欢的话请关注吧!
猜你喜欢
- 2025-03-14 一个用 Rust 开发的极快、易用的 Python 包和项目管理利器
- 2025-03-14 python解释器管理工具pyenv使用说明
- 2025-03-14 Linux命令手册:从青铜到王者,这30个命令让你成为终端高手
- 2025-03-14 python爬虫混肴DES案例:某影视大数据平台
- 2025-03-14 AI应用下一个风口:知识库(ai智能应用)
- 2025-03-14 使用vllm部署自己的大模型(如何部署模型)
- 2025-03-14 Python调用OpenDaylight REST API实验
- 2025-03-14 Java教程:gitlab-使用入门(java gitbook)
- 2025-03-14 接入5家DeepSeek模型提供商!边缘大模型网关助力一键畅享大模型
- 2025-03-14 python爬虫如何一键构造请求(python 构造)
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)