DeepSeek API 怎么开通?官方 Key、余额与首次调用教程
使用 DeepSeek 官方 API,需要在开放平台完成注册或登录、创建 API Key,并确认账户有可用余额,再向官方接口发送请求。本篇用一个短文本任务,带你检查认证、响应和费用记录;curl 与 Python 选一种执行即可。文档与公开入口核对于 2026 年 10 月 24 日,代码未进行付费调用,不提供虚构的成功响应或实测耗时。
先确认你要用的是哪个平台
DeepSeek 开放平台用于管理官方 API;中文 API 文档提供接口说明。网页登录聊天与开发者 API 调用是不同的使用入口,能聊天并不表示已经取得可用于代码的 Key。
若你已有云岚API账户,请使用云岚API接入教程。官方与云岚API的账号、Key、余额分别管理,不能把一家的 Key 发给另一家的地址;本文不要求你注册第三方服务。
官方 Key 和余额从哪里准备?
- 打开官方平台,按页面提示完成注册或登录。此次公开页面显示手机号验证码、密码登录及微信扫码入口;不同地区或后续版本可能不同。
- 进入官方API Keys 页面,创建供自己项目使用的 Key,并存入本地环境变量或密钥管理工具。不要把它写进网页前端、公开仓库或求助截图。
- 检查官方账户余额;不足时从官方文档的充值入口进入,按实际测试需要决定充值金额。
上述 Key 与充值地址来自官方错误码说明,未登录时均进入登录页。本次没有登录创建 Key 或完成充值,因此不对登录后按钮位置、付款方式、最低金额和赠送额度作承诺。
已有程序可使用 GET https://api.deepseek.com/user/balance 查询余额。关注 is_available 和 balance_infos,后者区分币种、总可用余额、赠送余额及充值余额;不要把人民币与美元数值直接相加。余额接口定义
base URL、模型名和协议怎样配?
本篇选择 OpenAI 格式的 Chat Completions。核对日官方示例使用 deepseek-flash,另一个可用模型名为 deepseek-v4-pro。先照当前文档填写,别从旧教程拼接版本后缀。官方首次调用说明
| 接入方式 | 官方地址与调用方式 | 本篇范围 |
|---|---|---|
| Chat Completions | base URL 为 https://api.deepseek.com;POST /chat/completions |
下面的最小请求 |
| Responses | 同一 base URL;POST /responses |
另有参数兼容表 |
| Anthropic 格式 | base URL 为 https://api.deepseek.com/anthropic;SDK 使用 messages.create |
另按该协议文档配置 |
不要把完整 /chat/completions 填进 SDK 的 base_url,让 SDK 追加端点即可。协议兼容也不等于所有功能都相同:例如 DeepSeek Responses 是无状态接口,不支持 previous_response_id。Responses 文档与Anthropic 格式说明分别列出了限制。
方法一:curl 发一个短请求
以下适用于 macOS/Linux 的 Bash,不是 PowerShell;如果终端使用 zsh,可先输入 bash 进入 Bash。Key 输入时不回显。执行会发起一次可能计费的请求,响应保存到当前目录;不要反复运行来猜测是否成功。
read -r -s -p "DeepSeek API Key: " DEEPSEEK_API_KEY
printf '\n'
export DEEPSEEK_API_KEY
: "${DEEPSEEK_API_KEY:?请先输入官方 Key}"
curl --silent --show-error \
--connect-timeout 10 --max-time 60 \
--output deepseek-response.json \
--write-out 'HTTP %{http_code}\n总耗时 %{time_total} 秒\n' \
'https://api.deepseek.com/chat/completions' \
-H "Authorization: Bearer ${DEEPSEEK_API_KEY}" \
-H 'Content-Type: application/json' \
--data '{
"model": "deepseek-flash",
"messages": [{"role": "user", "content": "用中文一句话说明 API 是什么。"}],
"thinking": {"type": "disabled"},
"max_tokens": 128,
"stream": false
}'
这里关闭思考模式、限制输出长度,是为了缩小首次验收范围,不是性能测试。官方当前默认开启思考模式;在 OpenAI SDK 中,thinking 要通过 extra_body 传入。思考模式说明
打开 deepseek-response.json,检查是否有回答正文、finish_reason 和 usage。HTTP 200 只表示请求完成,还要看回答是否完成任务;length 表示达到输出上限,不能当完整回答。超时或文件不是完整 JSON 时,先记录错误并核对平台用量,再决定是否重试。响应字段说明
方法二:用 Python 接入项目
按当前 SDK 要求准备 Python 3.10 或以上版本,在项目虚拟环境中安装 openai 包:python -m pip install -U openai。下面读取同名环境变量;若尚未设置,会在终端隐藏输入 Key。它与上面的 curl 是两种替代方案,连续执行会产生两次请求。
import getpass
import os
import time
from openai import OpenAI
key = os.environ.get("DEEPSEEK_API_KEY") or getpass.getpass("DeepSeek API Key: ")
if not key.strip():
raise SystemExit("没有输入 Key,未发送请求")
with OpenAI(
api_key=key,
base_url="https://api.deepseek.com",
timeout=60.0,
max_retries=0,
) as client:
started = time.perf_counter()
result = client.chat.completions.create(
model="deepseek-flash",
messages=[{"role": "user", "content": "用中文一句话说明 API 是什么。"}],
max_tokens=128,
stream=False,
extra_body={"thinking": {"type": "disabled"}},
)
print("本地耗时(秒):", round(time.perf_counter() - started, 3))
print("结束原因:", result.choices[0].finish_reason)
print("回答:", result.choices[0].message.content)
print("用量:", result.usage)
max_retries=0 关闭 SDK 自动重试,便于记录一次尝试;timeout 是客户端超时设置,不是官方响应时间保证。保存本地 python --version 和 python -m pip show openai 输出中的版本,后续排查才有可比条件。SDK 重试与超时说明
调不通时,先分清哪一层失败
| 现象 | 下一步检查 | 记录什么 |
|---|---|---|
| 401 | Key 是否来自官方平台,复制是否完整、是否已失效 | 时间、错误码;不记录 Key |
| 402 | 官方账号是否有可用余额,是否误看了别家余额 | 余额币种与状态 |
| 400 / 422 | JSON、模型名及参数是否符合当前协议 | 脱敏请求和错误正文 |
| 429 | 降低速率或并发,按官方限速说明处理 | 请求频率、并发数 |
| 500 / 503 | 暂停批量请求,稍后再尝试 | 时间、错误信息 |
| 连接超时、TLS 错误、HTTP 000 | 检查本机网络与目标地址,不关闭证书校验 | curl 错误、耗时 |
HTTP 分支依据官方错误码表。单次失败不能证明账号被封、网络永久不可用,或某个模型不可用;保留原始错误再判断。
怎样判断第一次调用真正通过?
把检查分成三步,避免“终端没有报错”就直接接入业务。首先确认拿到了可解析的响应:curl 保存的文件可以用 python -m json.tool deepseek-response.json 在本地展开,若是错误对象,就回到上表处理。其次读回答正文,本例应使用中文、解释 API,并且没有因输出上限中断。最后保存 usage,与平台对应时段的用量和账单核对;字段缺失时写“待核对”,不要推成免费。
如果只在自己的应用里失败,先保持同一个官方地址、Key 和模型,用最小示例缩小问题范围,再逐项恢复流式、工具、多轮历史等设置。不要同时更换服务商、模型和客户端,否则很难知道是哪一项改变了结果。求助时附客户端版本、脱敏参数、错误码和时间;先删除认证头、完整 Key 及业务私密内容。
价格与缓存怎样核账?
官方中文价格页按每百万 token 列人民币价格,区分输入缓存命中、输入缓存未命中和输出,并区分高峰与空闲时段。查价时同时记下日期、模型、币种和适用时段;本篇不固定复制价目,以免旧价被当成当前报价。
对本文这类纯文本请求,按同一次响应记录:
输入 token = prompt_cache_hit_tokens + prompt_cache_miss_tokens
模型费用 =(命中输入 × 命中单价
+ 未命中输入 × 未命中单价
+ completion_tokens × 输出单价)÷ 1,000,000
prompt_tokens 已包含命中部分,不能再把缓存命中数叠加一次;reasoning_tokens 是输出细分,也不要与输出总数重复相加。usage 定义
缓存由官方自动管理,重复请求不保证全部命中,应读取实际返回字段。本文请求没有启用搜索工具;以后加入 Search/Fetch 等能力,要另查相应费用,不能只套 token 公式。缓存规则与当前计费规则
保存一份首次调用验收记录
可下载首次调用验收记录模板,或将下面内容复制成 deepseek-first-call-record.md,每次尝试另存一份。未知值保留“待填”,不要填 0;示例字段不是本站实测数据。
日期、时间与时区:待填
服务商与 base URL:DeepSeek 官方;https://api.deepseek.com
客户端及版本/协议:待填;Chat Completions
请求模型/模式/输出上限:deepseek-flash/非思考/128 token
任务与通过标准:用中文一句话说明 API;回答切题且未被截断
尝试次数/成功次数/失败次数:待填
HTTP 状态/错误摘要/结束原因:待填(不得粘贴 Key)
总耗时(秒)/正文是否非空/人工验收结论:待填
prompt_tokens/缓存命中/缓存未命中/completion_tokens:待填
价格核对日/币种/时段/三项每百万单价:待填
计算费用/平台对应账单/差异与原因:待填
未覆盖能力:流式、工具调用、多轮长任务与长期稳定性
完成这一条短请求后,再用真实业务任务验收质量与费用。需要对齐不同服务的成本口径,可继续看API 费用核对清单;这次调用成功只证明当次配置与任务通过,不能代替整个应用的验收。
常见问题
DeepSeek 官方 Key 能在云岚API或其他平台通用吗?
不能混用。本文的 Key 来自 DeepSeek 官方开放平台,只配官方地址;云岚API使用自己的账号、Key 和余额。若更换服务,重新核对服务商地址、模型与账单,不要只替换模型名。
网页登录或购买会员,就包含 API 额度吗?
不能仅凭网页登录或会员状态判断。本文核验的是官方 API 的余额与用量计费规则,没有核验任何网页会员附赠 API 权益;如某项套餐宣称附赠额度,应查该套餐条款及开放平台实际到账记录。调用前仍要确认官方 API 账户有可用余额。官方余额定义
HTTP 200 就算首次调用验收通过了吗?
还需要检查回答正文、结束原因与用量。本例的通过标准是用中文切题地解释 API,且未被截断;费用再按 usage 与对应账单核对。一次通过不代表流式、工具调用、多轮任务和长期稳定性也已通过。响应字段说明
