从零跑通 DeepSeek API:账号、Key、Python 调用一次讲清楚
DeepSeek API接口调用教程|零基础可学
在大模型快速发展的今天,越来越多的开发者、创业者、产品经理、运营人员甚至非技术用户,都希望把AI能力接入到自己的应用、网站、自动化流程或内部工具中。相比直接使用网页端聊天,把AI能力通过API接口调用,可以实现更高的灵活性:比如自动生成文案、智能客服、代码辅助、知识库问答、数据分析、批量处理文本、接入企业系统等。
本文将以零基础也能看懂为目标,系统讲解 DeepSeek API 的基本概念、准备工作、接口调用方式、Python示例、常见参数、错误排查以及实际应用思路。即使你之前没有调用过任何AI API,也可以按照本文一步一步完成自己的第一次接口调用。
一、什么是 DeepSeek API?
DeepSeek API 可以简单理解为:DeepSeek 提供给开发者使用大模型能力的“程序入口”。
平时你在网页上和AI聊天,是通过浏览器输入问题,然后网页把问题发送给模型,模型再返回回答。而API调用则是你用代码或工具,把问题发送给DeepSeek服务器,再接收返回结果。
举个生活化的例子:
- 网页聊天:你打开餐厅菜单,自己点菜;
- API接口:你写好点餐单,让服务员按照规则自动帮你点菜;
- DeepSeek模型:相当于后厨,负责根据你的需求“制作回答”。
通过API,你可以把DeepSeek的能力集成到:
- 自己的网站;
- 微信机器人;
- 企业内部系统;
- 客服系统;
- 数据分析工具;
- 浏览器插件;
- 自动写作工具;
- 知识库问答系统;
- 工作流自动化平台;
- App、小程序或桌面软件。
二、调用 DeepSeek API 前需要准备什么?
在正式调用之前,通常需要准备以下几项内容。
1. DeepSeek账号
首先你需要拥有DeepSeek相关平台账号,并登录到开发者控制台或API管理页面。
一般来说,你需要完成:
- 注册账号;
- 登录平台;
- 进入API管理页面;
- 创建或查看API Key;
- 根据需要充值或开通额度。
不同平台页面可能会随时间调整,但核心流程基本一致。
2. API Key
API Key 是调用接口时最重要的凭证,可以理解为“接口密码”。
它的作用是告诉DeepSeek服务器:
“我是合法用户,我有权限调用模型。”
API Key 通常是一串较长的字符串,例如:
sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
注意:这里的示例只是格式演示,不是真实可用的密钥。
3. 编程环境
如果你只是想快速测试,可以使用以下方式:
- 使用命令行工具
curl; - 使用 Postman、Apifox 等接口测试工具;
- 使用 Python;
- 使用 Node.js;
- 接入已有后端服务。
对于零基础用户,推荐从 Python 开始,因为它语法简单,示例丰富,适合快速上手。
三、重要安全提醒:不要泄露 API Key
API Key 一定要妥善保存,千万不要随便发给别人,也不要直接写在公开代码仓库里。
错误示例:
api_key = "sk-你的真实APIKey"
如果你把包含真实API Key的代码上传到GitHub等公开平台,别人可能会拿你的Key进行调用,产生费用或造成安全风险。
更推荐的做法是使用环境变量,例如:
export DEEPSEEK_API_KEY="你的APIKey"
在Python中读取:
import os
api_key = os.getenv("DEEPSEEK_API_KEY")
这样可以避免把密钥直接写进代码。
四、DeepSeek API 的基本调用逻辑
不管你使用哪种语言,调用AI接口的基本流程通常都是类似的:
- 准备API Key;
- 确定接口地址;
- 设置请求头;
- 编写请求体;
- 发送请求;
- 接收返回结果;
- 解析模型回答。
以聊天模型为例,一次请求通常包含:
- 使用哪个模型;
- 用户说了什么;
- 系统角色设定;
- 温度等生成参数;
- 是否流式输出;
- 最大输出长度等。
典型请求结构类似:
{
"model": "deepseek-chat",
"messages": [
{
"role": "system",
"content": "你是一个专业、耐心的中文助手。"
},
{
"role": "user",
"content": "请用通俗语言解释什么是API。"
}
],
"temperature": 0.7
}
其中,messages 是对话内容,通常由多个消息组成。
五、messages 参数详解
在调用聊天接口时,messages 是最核心的参数之一。它是一个数组,每个元素代表一条消息。
常见角色有:
1. system
system 用来设定模型的身份、风格、规则。
例如:
{
"role": "system",
"content": "你是一名资深Python老师,回答时要适合零基础学生理解。"
}
它的作用类似于“给AI设定工作说明”。
2. user
user 表示用户输入的问题。
例如:
{
"role": "user",
"content": "请解释Python中的列表是什么。"
}
这是用户真正想问的问题。
3. assistant
assistant 表示模型之前的回答。多轮对话时,可以把历史回答也传入,让模型理解上下文。
例如:
{
"role": "assistant",
"content": "Python列表是一种可以存放多个元素的数据结构。"
}
多轮对话时,通常会把过去的 user 和 assistant 消息一起发送给模型。
六、使用 curl 调用 DeepSeek API
如果你暂时不想写代码,可以先用 curl 测试接口。
示例:
curl https://api.deepseek.com/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 你的APIKey" \
-d '{
"model": "deepseek-chat",
"messages": [
{
"role": "system",
"content": "你是一个专业的中文助手。"
},
{
"role": "user",
"content": "请用一句话介绍DeepSeek API。"
}
],
"temperature": 0.7
}'
如果调用成功,接口会返回类似JSON格式的数据。你可以在返回内容中找到模型生成的回答。
一般来说,回答内容可能位于类似下面的位置:
{
"choices": [
{
"message": {
"role": "assistant",
"content": "DeepSeek API 是一种让开发者通过程序调用DeepSeek大模型能力的接口。"
}
}
]
}
你真正需要读取的通常是:
choices[0].message.content
七、使用 Python 调用 DeepSeek API
下面我们用Python实现一个最简单的接口调用示例。
1. 安装 requests 库
如果你没有安装 requests,可以执行:
pip install requests
如果你的电脑同时有多个Python版本,也可以使用:
python -m pip install requests
或:
python3 -m pip install requests
2. 编写基础调用代码
新建一个文件,例如:
deepseek_demo.py
写入以下代码:
import os
import requests
api_key = os.getenv("DEEPSEEK_API_KEY")
if not api_key:
raise ValueError("请先设置环境变量 DEEPSEEK_API_KEY")
url = "https://api.deepseek.com/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
}
data = {
"model": "deepseek-chat",
"messages": [
{
"role": "system",
"content": "你是一个专业、耐心的中文AI助手。"
},
{
"role": "user",
"content": "请用通俗语言解释什么是API。"
}
],
"temperature": 0.7
}
response = requests.post(url, headers=headers, json=data)
print(response.status_code)
print(response.text)
运行:
python deepseek_demo.py
如果配置正确,你会看到接口返回结果。
3. 提取模型回答
上面的代码会打印完整JSON。实际开发中,我们通常只需要模型回答内容,可以这样写:
import os
import requests
api_key = os.getenv("DEEPSEEK_API_KEY")
url = "https://api.deepseek.com/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
}
data = {
"model": "deepseek-chat",
"messages": [
{"role": "system", "content": "你是一个专业中文助手。"},
{"role": "user", "content": "请给我三个学习Python的建议。"}
],
"temperature": 0.7
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
answer = result["choices"][0]["message"]["content"]
print("AI回答:")
print(answer)
这段代码更接近实际项目中的写法。
八、使用 OpenAI SDK 兼容方式调用
DeepSeek API 在很多场景下兼容 OpenAI SDK 的调用方式。这样做的好处是:如果你之前用过OpenAI接口,切换到DeepSeek时会更方便。
首先安装SDK:
pip install openai
Python示例:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DEEPSEEK_API_KEY"),
base_url="https://api.deepseek.com"
)
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "你是一个专业中文助手。"},
{"role": "user", "content": "请用简单语言介绍大模型API的用途。"}
],
temperature=0.7
)
print(response.choices[0].message.content)
这种写法简洁清晰,也更适合长期维护项目。
九、常用参数说明
调用接口时,除了 model 和 messages,还有一些常用参数值得了解。
1. model
指定你要使用的模型,例如:
"model": "deepseek-chat"
不同模型可能适合不同任务。例如有的更适合日常对话,有的更适合推理、代码或复杂问题。实际使用时应以官方文档中当前支持的模型名称为准。
2. temperature
temperature 控制回答的随机性和创造性。
- 值越低,回答越稳定、保守;
- 值越高,回答越发散、多样;
- 常见取值范围是 0 到 1 或更高,具体以接口文档为准。
建议:
- 事实问答、代码生成:
0.2 ~ 0.5; - 文案创作、头脑风暴:
0.7 ~ 1.0; - 严谨总结、格式转换:
0 ~ 0.3。
例如:
"temperature": 0.3
3. max_tokens
max_tokens 用来限制模型最多输出多少内容。
如果你希望回答简短,可以设置小一些;如果需要长文,可以设置大一些。
例如:
"max_tokens": 1000
注意:输入和输出通常都会消耗token,token可以粗略理解为模型处理文本的计量单位。中文里,一个汉字或词语可能会被拆成不同token,具体计算方式由模型分词规则决定。
4. stream
stream 表示是否启用流式输出。
普通输出是模型生成完完整答案后一次性返回;流式输出则是边生成边返回,类似网页聊天中一个字一个字出现。
适合使用流式输出的场景:
- 聊天机器人;
- 在线客服;
- 网页端AI助手;
- 长文本生成;
- 希望用户更快看到反馈的应用。
示例:
"stream": true
对于初学者,建议先使用非流式调用,等理解基础流程后再学习流式输出。
十、实现一个简单的命令行AI助手
下面我们做一个简单实用的小项目:在命令行中输入问题,DeepSeek返回答案。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DEEPSEEK_API_KEY"),
base_url="https://api.deepseek.com"
)
messages = [
{
"role": "system",
"content": "你是一个耐心、专业、擅长用中文解释问题的AI助手。"
}
]
print("DeepSeek命令行助手已启动,输入 exit 退出。")
while True:
user_input = input("\n你:")
if user_input.lower() in ["exit", "quit"]:
print("助手:再见!")
break
messages.append({
"role": "user",
"content": user_input
})
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages,
temperature=0.7
)
answer = response.choices[0].message.content
print("\n助手:")
print(answer)
messages.append({
"role": "assistant",
"content": answer
})
这个程序实现了多轮对话,因为它会把之前的聊天记录保存在 messages 中。
不过要注意:如果对话越来越长,传给模型的上下文也会越来越长,可能导致token消耗增加,甚至超过上下文长度限制。因此实际项目中需要做历史消息裁剪或摘要。
十一、如何让AI回答更符合你的需求?
很多初学者调用API后会发现:模型有时回答不够稳定,或者格式不是自己想要的。这时需要优化提示词,也就是Prompt。
1. 明确角色
不推荐:
写一篇文章
推荐:
你是一名有10年经验的新媒体编辑,请写一篇适合公众号发布的文章。
2. 明确输出格式
不推荐:
分析这个产品
推荐:
请从以下5个维度分析这个产品:
1. 目标用户
2. 核心功能
3. 使用场景
4. 优势
5. 改进建议
请用Markdown表格输出。
3. 给出约束条件
例如:
请写一篇800字左右的中文介绍,语气专业但通俗,不要使用过多术语,适合零基础读者。
约束越清楚,模型越容易给出你想要的结果。
4. 提供示例
如果你希望AI按照某种风格输出,可以给它一个示例。
例如:
请按照以下格式输出:
标题:
摘要:
正文:
结论:
示例可以显著提升输出稳定性。
十二、常见错误与排查方法
在API调用过程中,新手最容易遇到以下问题。
1. 401 Unauthorized
含义:认证失败。
常见原因:
- API Key写错;
- Authorization请求头格式不正确;
- API Key已失效;
- 没有正确设置环境变量。
正确格式一般是:
Authorization: Bearer 你的APIKey
注意 Bearer 后面有一个空格。
2. 400 Bad Request
含义:请求参数有问题。
可能原因:
- JSON格式错误;
model名称写错;messages格式不正确;- 参数类型不符合要求;
- 输入内容超过限制。
建议打印完整错误信息:
print(response.status_code)
print(response.text)
3. 429 Too Many Requests
含义:请求过于频繁,触发限流。
解决方法:
- 降低请求频率;
- 增加重试间隔;
- 检查账号额度和并发限制;
- 批量任务中加入队列控制。
4. 余额不足或额度不足
如果接口返回与余额、额度相关的错误,需要检查账户是否有可用额度。
建议:
- 查看控制台用量;
- 检查充值状态;
- 关注调用频率;
- 对长文本任务控制输出长度。
5. 网络连接失败
如果请求无法连接,可能是:
- 本地网络问题;
- 代理配置问题;
- 域名访问异常;
- 服务器临时不可用。
可以先用浏览器或命令行测试网络,再排查代码问题。
十三、实际开发中的最佳实践
1. 不要在前端暴露API Key
如果你开发网页应用,不要直接在前端JavaScript中写API Key。因为浏览器端代码用户可以看到,密钥很容易泄露。
推荐架构:
前端页面 → 你的后端服务 → DeepSeek API
由你的后端保存API Key,前端只请求你的后端接口。
2. 记录日志但不要记录敏感信息
开发时可以记录请求状态、耗时、错误信息等,但不要把API Key写入日志。
如果用户输入中包含隐私信息,也要谨慎处理。
3. 控制上下文长度
多轮对话时,不要无限制保存全部历史消息。可以采用:
- 只保留最近几轮;
- 将较早对话总结成摘要;
- 按主题新建会话;
- 设置最大token预算。
4. 设置超时时间
使用 requests 时建议设置超时,避免程序一直等待:
response = requests.post(
url,
headers=headers,
json=data,
timeout=60
)
5. 增加异常处理
更稳健的代码示例:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DEEPSEEK_API_KEY"),
base_url="https://api.deepseek.com"
)
try:
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "user", "content": "请解释什么是机器学习。"}
],
temperature=0.5
)
print(response.choices[0].message.content)
except Exception as e:
print("调用失败:", e)
实际生产环境中,还可以加入重试机制、限流机制、错误告警等。
十四、DeepSeek API 可以做哪些项目?
如果你已经学会基础调用,可以尝试以下项目。
1. 智能客服
将用户问题发送给模型,让AI自动回答常见问题。结合企业知识库后,可以实现更准确的业务问答。
2. 文章生成工具
输入主题、关键词、目标读者,自动生成文章大纲、标题、正文、摘要和发布文案。
3. 代码解释助手
把代码片段发送给模型,让它解释代码含义、指出问题、给出优化建议。
4. 简历优化工具
用户输入个人经历,AI帮助润色简历、提炼项目亮点、生成面试自我介绍。
5. 数据分析助手
把表格字段说明、业务背景和问题发给模型,让AI辅助分析数据含义、生成SQL语句或分析报告。
6. 知识库问答系统
结合向量数据库、文档切片和检索增强生成技术,让AI基于企业文档进行回答。
十五、一个完整的小案例:生成营销文案
假设你要做一个自动生成营销文案的小工具,用户输入产品信息,AI输出短视频文案。
示例代码:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DEEPSEEK_API_KEY"),
base_url="https://api.deepseek.com"
)
product_name = input("请输入产品名称:")
target_user = input("请输入目标用户:")
selling_points = input("请输入产品卖点:")
prompt = f"""
你是一名资深短视频营销文案策划。
请根据以下信息生成一段适合短视频口播的中文文案:
产品名称:{product_name}
目标用户:{target_user}
产品卖点:{selling_points}
要求:
1. 开头3秒吸引注意力;
2. 语言通俗、有画面感;
3. 字数控制在200字以内;
4. 最后加入行动号召;
5. 不要夸大承诺。
"""
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "你擅长创作真实、自然、有转化力的中文营销文案。"},
{"role": "user", "content": prompt}
],
temperature=0.8
)
print("\n生成结果:")
print(response.choices[0].message.content)
这个案例的核心思路是:把用户输入转换成结构化Prompt,再发送给模型,最后展示模型结果。
十六、费用与Token的基本理解
调用API通常会根据token数量计费。你可以把token理解为模型处理文本的基本单位。
一次调用的费用通常与以下因素有关:
- 输入内容长度;
- 输出内容长度;
- 使用的模型;
- 调用次数;
- 是否进行长上下文处理。
为了控制成本,可以采取以下方式:
- 不传无关历史消息;
- 限制最大输出长度;
- 对长文档先摘要再处理;
- 批量任务设置合理频率;
- 定期查看用量统计;
- 根据任务选择合适模型。
对于刚开始学习的用户,建议先用短问题测试,确认流程跑通后,再进行复杂任务开发。
十七、零基础学习路线建议
如果你是完全零基础,建议按照下面路线学习:
第一阶段:会调用
目标是跑通第一个API请求。
你需要掌握:
- API Key是什么;
- 请求地址是什么;
- 请求头怎么写;
- messages怎么组织;
- 如何查看返回结果。
第二阶段:会改参数
目标是让模型回答更符合需求。
你需要掌握:
- temperature;
- max_tokens;
- system prompt;
- 多轮对话;
- 输出格式控制。
第三阶段:会做小工具
目标是完成一个可用脚本。
可以尝试:
- 命令行聊天助手;
- 文案生成器;
- 标题生成器;
- 翻译工具;
- 文章摘要工具。
第四阶段:接入真实项目
目标是把AI能力融入业务系统。
你需要学习:
- 后端接口开发;
- 数据库存储;
- 用户权限;
- 日志监控;
- 异常处理;
- 成本控制;
- 安全策略。
十八、总结
DeepSeek API 的核心并不复杂。对于初学者来说,只要理解以下几点,就已经掌握了入门关键:
- API 是程序调用AI能力的入口;
- API Key 是身份凭证,必须妥善保管;
- 请求时需要设置接口地址、请求头和请求体;
messages用来传递对话内容;system可以设定AI角色和规则;user是用户输入的问题;- 返回结果通常从
choices[0].message.content中读取; - Python 和 OpenAI SDK 都可以较方便地调用;
- 实际开发中要注意安全、限流、成本和错误处理;
- 学会基础调用后,就可以构建各种AI应用。
如果你是零基础,不必一开始就追求复杂项目。最好的学习方式是:先用最简单的示例跑通接口,再逐步修改Prompt、参数和业务逻辑。当你能稳定地把输入发送给模型,并正确处理返回结果时,就已经迈出了AI应用开发最重要的一步。
DeepSeek API 的价值在于,它不仅是一个聊天接口,更是把大模型能力嵌入现实业务流程的工具。无论你想做智能客服、自动写作、代码助手、数据分析,还是企业知识库问答,API调用都是基础中的基础。掌握它,你就拥有了把AI能力真正落地到产品和工作的入口。