DeepSeek API调用方法与模型对比
DeepSeek 是近年来最受关注的国产大模型之一。凭借开源策略、极低的 API 价格和接近第一梯队的推理能力,它迅速成为许多开发者在成本敏感场景下的首选。无论你是想搭建一个低成本的 AI 助手,还是在现有产品里替换昂贵的 GPT-4 调用,DeepSeek 都值得认真评估。本文会从模型对比入手,带你完整走通 DeepSeek API 的调用流程,包含 cURL、Python 两种方式,以及流式输出和价格测算。
一、DeepSeek 模型矩阵
DeepSeek 目前主要通过 API 对外提供两类模型:通用对话模型 DeepSeek-V3 和推理模型 DeepSeek-R1。两者定位不同,适用场景也各有侧重,理解它们的差异是选型的第一步。
DeepSeek-V3:通用对话主力
DeepSeek-V3 是 MoE(混合专家)架构的通用大模型,总参数量达到 671B,但每次推理只激活约 37B 参数,兼顾了能力和效率。它的定位对标 GPT-4o 和 Claude 3.5,擅长日常对话、文本生成、翻译、代码补全和函数调用。对于大多数应用场景,V3 是默认选择——响应快、价格低、能力全面。
DeepSeek-R1:深度推理专用
DeepSeek-R1 是基于强化学习训练的推理模型,对标 OpenAI 的 o1 系列。它的特点是会在给出最终答案前进行长链思考(chain-of-thought),在数学、逻辑推理、复杂代码和科学问题上表现显著优于通用模型。代价是输出 token 更多、延迟更高、单次调用成本也更高。因此 R1 适合用在「难题」上,而不是闲聊或简单问答。
| 维度 | DeepSeek-V3 | DeepSeek-R1 |
|---|---|---|
| 定位 | 通用对话与生成 | 深度推理 |
| 架构 | MoE,激活 37B | MoE + RL 推理 |
| 上下文窗口 | 128K | 128K |
| 擅长任务 | 对话、写作、代码、函数调用 | 数学、逻辑、复杂推理 |
| 响应速度 | 快 | 较慢(含思考过程) |
| 建议场景 | 日常应用默认选择 | 难题、Agent 决策链 |
一个实用的策略是双模型分工:用 V3 处理高频的常规请求,把识别出的复杂问题路由给 R1。这样既控制了整体成本,又能在关键环节拿到推理质量。
二、调用前置准备
DeepSeek 官方 API 完全兼容 OpenAI 的接口格式,这意味着你不需要学习新的 SDK,现有的 OpenAI 客户端代码只要改两个地方就能跑起来:base_url 和 api_key。
调用前需要完成以下准备:
- 注册 DeepSeek 开放平台账号,完成实名认证;
- 在控制台创建 API Key,妥善保存(密钥只在创建时显示一次);
- 确认账户余额充足,DeepSeek 采用预充值计费模式;
- 记下 API 地址:
https://api.deepseek.com/v1(官方)或使用聚合平台地址。
提示:如果你不想单独管理 DeepSeek 的账号和余额,也可以通过 EnlyAI 这类聚合平台调用,用同一个 Key 和同一个
base_url同时访问 DeepSeek、OpenAI、Claude 等模型,后文会专门介绍。
三、用 cURL 调用 DeepSeek API
cURL 是最直接的调试方式,适合快速验证接口是否通、Key 是否有效。DeepSeek 的 Chat Completions 接口路径为 /chat/completions,请求体格式与 OpenAI 完全一致。
# 调用 DeepSeek-V3 通用模型
curl https://api.deepseek.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-d '{
"model": "deepseek-chat",
"messages": [
{"role": "system", "content": "你是一个简洁的技术助手。"},
{"role": "user", "content": "用一句话解释什么是 MoE 架构。"}
],
"temperature": 0.7
}'
如果要切换到推理模型 R1,只需把 model 改为 deepseek-reasoner:
# 调用 DeepSeek-R1 推理模型
curl https://api.deepseek.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-d '{
"model": "deepseek-reasoner",
"messages": [
{"role": "user", "content": "一个水池有两个进水管一个出水管,A管5小时注满,B管6小时注满,C管10小时排空,三管同开几小时注满?"}
]
}'
R1 的响应里会额外包含一个 reasoning_content 字段,记录模型的思考过程,content 才是最终答案。这个设计让你可以选择是否把思考链展示给终端用户。
四、用 Python 调用 DeepSeek API
生产环境推荐用 Python。由于接口兼容 OpenAI,你可以直接复用官方 openai SDK,只需把 base_url 指向 DeepSeek。
方式一:使用 OpenAI SDK(推荐)
from openai import OpenAI
client = OpenAI(
api_key="你的 DeepSeek API Key",
base_url="https://api.deepseek.com/v1",
)
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "你是一个专业的 Python 工程师。"},
{"role": "user", "content": "写一个快速排序函数并解释原理。"},
],
temperature=0.7,
)
print(response.choices[0].message.content)
方式二:使用 requests 库
如果不想引入额外依赖,用标准 requests 库同样可以:
import requests
url = "https://api.deepseek.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer 你的API Key",
}
payload = {
"model": "deepseek-chat",
"messages": [
{"role": "user", "content": "用三句话介绍 DeepSeek。"}
],
}
resp = requests.post(url, headers=headers, json=payload, timeout=60)
resp.raise_for_status()
print(resp.json()["choices"][0]["message"]["content"])
五、流式输出(Streaming)
对于聊天类应用,流式输出能显著改善用户体验——模型一边生成一边返回,用户不用干等整段结果。只需在请求里加上 "stream": true。
from openai import OpenAI
client = OpenAI(
api_key="你的 DeepSeek API Key",
base_url="https://api.deepseek.com/v1",
)
stream = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "讲一个关于程序员的冷笑话。"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
流式模式下,每个 chunk 的 delta.content 是增量文本,拼接起来就是完整回答。注意 R1 模型流式输出时,思考过程会通过 delta.reasoning_content 单独推送,最终答案走 delta.content,处理时要注意区分。
六、价格对比:为什么 DeepSeek 值得关注
DeepSeek 最大的吸引力在于价格。以下是其官方定价与同类模型的量级对比(价格可能随官方调整,以官网为准):
| 模型 | 输入价格(每百万 token) | 输出价格(每百万 token) |
|---|---|---|
| DeepSeek-V3(缓存命中) | 约 ¥1 | 约 ¥8 |
| DeepSeek-V3(缓存未命中) | 约 ¥2 | 约 ¥8 |
| DeepSeek-R1 | 约 ¥4 | 约 ¥16 |
| GPT-4o(参考) | 约 ¥18 | 约 ¥72 |
| Claude(参考) | 约 ¥21 | 约 ¥105 |
可以看出,DeepSeek-V3 的输入价格大约只有 GPT-4o 的十分之一,输出价格约九分之一。对于高并发的应用——比如客服机器人、内容生成流水线、批量数据处理——这个价差会直接转化为可观的利润空间。
DeepSeek 还有一个独特优势:上下文缓存(Context Caching)。当你重复发送相同的前缀(比如固定的 system prompt 或长文档),命中缓存后输入价格直接减半。这对多轮对话和 RAG 场景特别友好。
七、通过 EnlyAI 统一调用 DeepSeek
直接对接 DeepSeek 官方 API 有几个现实痛点:需要单独注册和充值、要管理多套 Key、切换模型时要改代码、官方平台偶尔有波动。如果你的应用同时还要用 GPT-4o 或 Claude,多账号管理的负担会更明显。
EnlyAI 这类 LLM API 聚合平台解决的就是这个问题。它把 DeepSeek、OpenAI、Claude、Gemini 等多家模型统一到一套 OpenAI 兼容接口下,你只需要一个 Key、一个 base_url,就能在所有模型间自由切换。
通过 EnlyAI 调用 DeepSeek,代码几乎不用改,只换 base_url 和 Key:
from openai import OpenAI
client = OpenAI(
api_key="你的 EnlyAI API Key",
base_url="https://enlyai.com/v1",
)
response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "你好,介绍一下你自己。"}],
)
print(response.choices[0].message.content)
这样做的好处是显而易见的:
- 一个 Key 管所有模型,不用在多家平台分别注册充值;
- 统一计费和账单,成本一目了然,方便做预算控制;
- 模型随时切换,把
model从deepseek-chat改成gpt-4o就能换模型,业务代码零改动; - 多渠道容灾,单一上游波动时自动切换,稳定性更高。
八、常见问题
DeepSeek-V3 和 R1 能不能在一次请求里混用?
不能。每次请求只能指定一个 model。如果你想让 R1 先思考再交给 V3 润色,需要分两次调用:先用 R1 生成推理结果,再把结果作为上下文传给 V3 做格式化输出。
R1 的思考过程会收费吗?
会。R1 输出的 reasoning_content 也算输出 token,按输出价格计费。所以对于简单问题不要滥用 R1,否则成本会明显高于 V3。
DeepSeek 支持函数调用(Function Calling)吗?
支持。DeepSeek-V3 兼容 OpenAI 的 function calling 格式,可以定义 tools 让模型调用外部函数。R1 目前对函数调用的支持有限,建议工具调用场景优先用 V3。
国内访问 DeepSeek API 稳定吗?
DeepSeek 是国产模型,国内直连延迟低、无需代理。但在高峰期偶尔会出现排队或限流,对延迟敏感的生产应用建议通过聚合平台做多渠道容灾,避免单点依赖。
九、总结
DeepSeek 用「接近旗舰的能力 + 极低的价格 + OpenAI 兼容接口」三张牌,在国产大模型里站稳了脚跟。日常应用选 V3,复杂推理选 R1,再配合上下文缓存进一步压低成本,是当前性价比很高的组合。而如果你同时还要用到 GPT-4o、Claude 等海外模型,通过 EnlyAI 统一接入能省去大量账号管理和代码切换的麻烦,让模型选型真正变成一行配置的事。
一个 Key,调用 DeepSeek 与全球模型
EnlyAI 把 DeepSeek、OpenAI、Claude、Gemini 聚合到统一接口,兼容 OpenAI SDK,改一行 base_url 即可在所有模型间自由切换。注册即享免费试用。