DeepSeek API 完全指南:V4新模型、定价与从零接入教程

上周有个朋友在群里问:“我注册了 DeepSeek,网页版聊天用得挺爽,但怎么把它接到我自己的产品里?”

DeepSeek API 开发者平台后台管理界面,API Keys 创建与管理页面

这个问题问得好。网页版聊天是 DeepSeek 的冰山一角,真正让它成为开发者神器的,是 API——你可以把 DeepSeek 的能力嵌入任何应用、自动化流程、或者你自己写的小工具里。而且价格便宜到你不敢相信。

这篇文章不写废话,直接带你从零到一跑通 DeepSeek API。

DeepSeek API 最新变化:V4 时代来了

2026 年中的 DeepSeek API 发生了两个大变化,每个开发者都得知道。

第一,V4 模型上线。 DeepSeek 推出了两个新模型:

模型定位适用场景
deepseek-v4-flash高速低价日常对话、客服、内容生成、批量处理
deepseek-v4-pro旗舰性能复杂推理、代码生成、专业分析

V4 Flash 的并发限制高达 2500,意味着你可以同时跑 2500 个请求不排队——这对做产品的来说太重要了。

第二,旧模型名称即将废弃。 从 2026 年 7 月 24 日起,deepseek-chat(对应旧 V3)和 deepseek-reasoner(对应旧 R1)这两个名称将正式停止服务。如果你现在的代码里还在用这两个名字,赶紧改。

你不需要单独切换”推理模式”和”普通模式”了——V4 Flash 一个模型就支持 thinking 和 non-thinking 两种模式,通过参数切换即可。

模型怎么选:Flash 还是 Pro?

这个问题被问得最多,这里给你一个决策表:

维度V4 FlashV4 Pro
输入价格(缓存未命中)$0.14/M tokens$0.435/M tokens
输入价格(缓存命中)$0.0028/M tokens$0.003625/M tokens
输出价格$0.28/M tokens$0.87/M tokens
上下文窗口1M1M
最大输出384K384K
并发限制2500500
思考模式✅ 支持✅ 支持
JSON 输出
Function Calling
FIM 补全✅(非思考模式)✅(非思考模式)
Anthropic 格式

选 Flash 的情况(90% 的场景):

  • 做聊天机器人、客服系统
  • 批量内容生成、翻译、摘要
  • 需要高并发、追求低延迟
  • 日常代码辅助

选 Pro 的情况(需要极致推理质量):

  • 复杂数学证明、逻辑推理链
  • 高难度代码架构设计
  • 专业领域的深度分析报告
  • 对”正确率”有极致要求的场景

一句话总结:先用 Flash。不够用再切 Pro。Flash 的实力已经远超大部分人的预期。

上下文窗口 1M 是什么概念?一本《三体》三部曲加起来大约 90 万字,约合 120 万 token。1M 窗口意味着你可以把 80% 的三体内容一次性丢进去分析。这在一年前是不可想象的。

第一步:获取 API Key

这是最容易被卡住的环节。很多人以为注册了 DeepSeek 账号就能用 API,其实不是——API 和网页版是两套体系。

  1. 打开 platform.deepseek.com
  2. 用你的 DeepSeek 账号登录(和网页版同一个账号)
  3. 进入 API Keys 页面,点击「创建 API Key」
  4. 复制生成的 key(格式是 sk- 开头的一长串字符)
  5. 立即保存——关闭页面后就再也看不到完整 key 了
⚠️

API Key 只有创建那一刻能看到完整内容。关闭弹窗后只显示前几位。务必在创建后立刻复制保存到安全的地方(如 1Password、.env 文件),不要存在代码仓库里。

API 需要充值才能用。进入 Billing 页面,支持信用卡和支付宝。建议先充 $5(约 35 元)试试水——按 Flash 的价格,$5 能跑上千万 token,足够你做大量测试了。

DeepSeek 平台 V4 Flash 与 V4 Pro 模型定价对比页面

第二步:定价拆解(到底有多便宜)

DeepSeek API 的价格单位是”每百万 token”。一个 token 大约等于 0.7 个中文字或 0.75 个英文单词。

V4 Flash 定价

假设你调用一次 API,输入 2000 token、输出 500 token:

  • 输入费用:2000 / 1,000,000 × $0.14 = $0.00028
  • 输出费用:500 / 1,000,000 × $0.28 = $0.00014
  • 单次调用总费用:约 $0.00042(不到 3 厘人民币)

也就是说,1 美元可以调用大约 2400 次中等长度的对话。

缓存命中是什么?

DeepSeek 对重复的输入内容提供缓存优惠。如果你连续发送相同的 system prompt 或上下文前缀,后续请求的输入价格直接降到 $0.0028/M——几乎等于免费。

举个例子:你的产品有 5000 个用户每天各问 10 个问题,system prompt 相同。第一个请求按 $0.14/M 计费,之后 49999 个请求全都走缓存命中价。实际日均成本可能就几毛钱。

和 OpenAI 比一下

模型输入($/M)输出($/M)
DeepSeek V4 Flash$0.14$0.28
DeepSeek V4 Pro$0.435$0.87
GPT-4o$2.50$10.00
GPT-4o-mini$0.15$0.60
Claude 3.5 Sonnet$3.00$15.00

DeepSeek V4 Flash 的输出价格是 GPT-4o 的 1/35。如果你从 OpenAI 迁过来,账单会从四位数变成两位数。如果你对选择模型有疑问,可以看我们的 DeepSeek V3 与 R1 对比指南 以及 DeepSeek vs OpenAI API 对比

VS Code 代码编辑器中 Python 调用 DeepSeek API 的流式输出示例

第三步:第一个 API 调用

用 Python 跑通第一个请求只需要 10 行代码:

import requests
import json

API_KEY = "sk-your-api-key-here"  # 替换成你的 key
url = "https://api.deepseek.com/v1/chat/completions"

headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {API_KEY}"
}

data = {
    "model": "deepseek-v4-flash",
    "messages": [
        {"role": "system", "content": "你是一个有帮助的助手。"},
        {"role": "user", "content": "用三句话介绍北京的故宫。"}
    ],
    "temperature": 0.7,
    "max_tokens": 500
}

response = requests.post(url, headers=headers, json=data)
result = response.json()

print(result["choices"][0]["message"]["content"])

不用装任何 SDK,DeepSeek 完全兼容 OpenAI 的 API 格式。如果你之前用 openai 这个 Python 包,改两个参数就能无缝切换:

from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://api.deepseek.com"  # 就改这里
)

response = client.chat.completions.create(
    model="deepseek-v4-flash",  # 还有这里
    messages=[{"role": "user", "content": "你好"}]
)

print(response.choices[0].message.content)

Node.js 同理:

const response = await fetch("https://api.deepseek.com/v1/chat/completions", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": `Bearer ${process.env.DEEPSEEK_API_KEY}`
  },
  body: JSON.stringify({
    model: "deepseek-v4-flash",
    messages: [{ role: "user", content: "你好" }]
  })
});
const data = await response.json();
console.log(data.choices[0].message.content);

兼容 OpenAI SDK 是 DeepSeek API 最大的工程优势——你不用学新东西,不用改架构,换一个 URL 就搞定了。

第四步:进阶功能

流式输出(Streaming)

网页版那种一个字一个字往外蹦的效果,靠的就是 SSE(Server-Sent Events)。API 打开流式输出只需要加一个参数:

data["stream"] = True

response = requests.post(url, headers=headers, json=data, stream=True)

for line in response.iter_lines():
    if line:
        line = line.decode("utf-8")
        if line.startswith("data: ") and line != "data: [DONE]":
            chunk = json.loads(line[6:])
            delta = chunk["choices"][0].get("delta", {})
            content = delta.get("content", "")
            if content:
                print(content, end="", flush=True)

流式输出对用户体验的提升是巨大的。用户不用盯着空白页面等 5 秒——第一秒就能看到字,感觉快了很多。只要不是后台批处理,一律开 streaming。

JSON 结构化输出

如果你用 API 做数据处理(比如从一段文本里提取结构化信息),JSON 模式是必须的:

data = {
    "model": "deepseek-v4-flash",
    "messages": [
        {"role": "system", "content": "从用户输入中提取姓名、年龄和城市,以 JSON 格式返回。"},
        {"role": "user", "content": "我叫李明,今年28岁,住在杭州。"}
    ],
    "response_format": {"type": "json_object"}
}

result = response.json()
parsed = json.loads(result["choices"][0]["message"]["content"])
# {"name": "李明", "age": 28, "city": "杭州"}

加了 response_format: json_object 后,模型保证输出合法 JSON,不会给你多一个逗号少一个括号。做自动化管线的必备功能。

Function Calling(工具调用)

想让 DeepSeek 调用你的函数?Function Calling 让模型决定什么时候调用什么工具:

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "获取指定城市的天气",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {
                    "type": "string",
                    "description": "城市名称,如 北京"
                }
            },
            "required": ["city"]
        }
    }
}]

data["tools"] = tools
data["messages"].append({"role": "user", "content": "北京今天天气怎么样?"})

response = requests.post(url, headers=headers, json=data)
result = response.json()

tool_calls = result["choices"][0]["message"].get("tool_calls", [])
if tool_calls:
    func_name = tool_calls[0]["function"]["name"]
    func_args = json.loads(tool_calls[0]["function"]["arguments"])
    print(f"调用函数: {func_name}({func_args})")
    # 调用函数: get_weather({'city': '北京'})

这个功能的价值在于:你可以让 DeepSeek 操作数据库、调外部 API、控制 IoT 设备——把语言模型变成你系统的”总控大脑”。

思考模式(Thinking Mode)

V4 Flash 和 V4 Pro 都支持思考模式——也就是旧版 R1 那种”先在脑子里推理一遍再回答”的能力。开启方式有两种:

方式一:修改 model 名称

model = "deepseek-v4-flash:thinking"  # 开启思考模式

方式二:使用 thinking 参数(Anthropic 格式)

# 请求发送到 https://api.deepseek.com/anthropic/v1/messages
# thinking: {"type": "enabled", "budget_tokens": 4000}

思考模式适合需要多步推理的场景:数学解题、逻辑推理、复杂代码调试。缺点是慢——思考过程不计入输出 token(不额外收费),但会增加首 token 延迟。日常聊天不需要开。

第五步:生产环境注意事项

API 跑通之后,上生产还有几个容易踩的坑。

错误处理

API 调用不可能 100% 成功。网络波动、服务端限流、余额不足——这些问题在生产环境迟早会遇到。写一个健壮的调用封装:

import time

def call_deepseek(messages, max_retries=3):
    for attempt in range(max_retries):
        try:
            response = requests.post(
                url, headers=headers, json={
                    "model": "deepseek-v4-flash",
                    "messages": messages
                }, timeout=30
            )
            if response.status_code == 200:
                return response.json()
            elif response.status_code == 429:
                # 限流,等一等再试
                wait = min(2 ** attempt, 30)
                print(f"限流中,等待 {wait} 秒...")
                time.sleep(wait)
            elif response.status_code >= 500:
                # 服务端错误,重试
                time.sleep(1)
            else:
                # 客户端错误(401 没权限、402 余额不足等),不重试
                raise Exception(f"API 错误: {response.status_code} - {response.text}")
        except requests.exceptions.Timeout:
            time.sleep(1)
    raise Exception("重试次数已用完")

并发控制

V4 Flash 并发限制 2500,日常完全够用。但如果你用 asyncio 或线程池,注意控制并发数,不要打满。简单实现:

import asyncio

semaphore = asyncio.Semaphore(100)  # 最多同时 100 个请求

async def call_api_async(messages):
    async with semaphore:
        # 你的异步调用逻辑
        pass

留点余量给突发流量——生产环境建议并发上限设为官方限制的 50%。

成本监控

在代码里加一个简单的 token 计数器:

usage = result.get("usage", {})
prompt_tokens = usage.get("prompt_tokens", 0)
completion_tokens = usage.get("completion_tokens", 0)
# 缓存命中时 prompt_tokens_details 里有 cached_tokens 字段
cached = usage.get("prompt_tokens_details", {}).get("cached_tokens", 0)

cost = (prompt_tokens - cached) / 1_000_000 * 0.14  # 未命中部分
cost += cached / 1_000_000 * 0.0028  # 缓存命中
cost += completion_tokens / 1_000_000 * 0.28  # 输出

print(f"本次调用消耗 {prompt_tokens + completion_tokens} tokens,约 ${cost:.6f}")

每次请求都记一笔,月底一汇总就知道钱花在哪了。别等到收到账单才发现某个循环忘了关 streaming。

API Key 安全

  • 永远不要在客户端代码里写 API Key——浏览器、App 里的 key 等同于公开
  • 后端转发:客户端请求你的服务器,你的服务器再调 DeepSeek API
  • 环境变量:.env 文件加 .gitignore,永远不要提交到 Git
  • 定期轮换:每季度换一次 key,在 platform.deepseek.com 创建新的、删除旧的

总结

DeepSeek API 的核心竞争力就三个字:好用、便宜、兼容

  • 好用:V4 Flash 质量过硬,1M 上下文窗口业界最大之一,思考模式和普通模式自由切换
  • 便宜:输出 $0.28/M token,不及 GPT-4o 的三十分之一,缓存命中更是几乎白送
  • 兼容:完全兼容 OpenAI SDK,10 行代码迁移,零学习成本

如果你正在考虑为产品接入大模型,DeepSeek V4 Flash 是我个人在 2026 年最推荐的选择——不是因为免费崇拜,而是因为它确实在性能和成本之间找到了最佳平衡点。如果你还在网页版阶段,可以先看我们的 DeepSeek 网页版完整使用指南,或者从 DeepSeek 官方下载与安装教程 开始。

🔄

2026年7月24日前必须做的事:如果你在用 deepseek-chatdeepseek-reasoner,请在截止日期前迁移到 deepseek-v4-flash,并用 thinking 模式替代原来的 reasoner 推理功能。过了 7 月 24 日,旧名称直接返回错误。

常见问题

DeepSeek API 免费吗?有没有免费额度?
不免费,但新注册用户通常会获赠一定的试用额度(具体金额以 platform.deepseek.com 页面显示为准)。额度用完需要充值。即使自费也不贵——$5 够普通开发者用很久。如果只是个人偶尔使用,网页版和 App 目前仍然完全免费,看这篇DeepSeek 下载与注册教程了解如何开始。
deepseek-chat 和 deepseek-reasoner 还能用多久?
2026 年 7 月 24 日 15:59 UTC 之后正式废弃。届时所有请求这两个模型名称的 API 调用都会返回错误。迁移方案很简单:把 model 参数改为 deepseek-v4-flash,原来的 reasoning 需求通过开启 thinking 模式实现。
DeepSeek API 支持图片识别吗?
V4 Flash 和 V4 Pro 目前主要支持文本输入输出。如果你需要图片识别功能,DeepSeek 网页版和 App 支持上传图片文件进行分析(包括 OCR 文字识别和图像内容理解)。App 下载方式见DeepSeek App 官方下载指南
缓存命中是什么?我需要做什么才能享受缓存价格?
缓存命中是自动的,不需要你做任何配置。当 API 检测到你连续发送的前缀内容(通常是 system prompt 或历史消息)与之前的请求相同时,自动按缓存命中价计费。一个典型的聊天应用场景中,system prompt 不变,80% 以上的输入 token 都能命中缓存——实际成本远低于你的预期。
我的 API Key 不小心泄露了怎么办?
立刻登录 platform.deepseek.com,在 API Keys 页面删除被泄露的 key,创建一个新的。如果你的余额被盗刷,联系 DeepSeek 官方支持说明情况。预防比补救重要——养成把 key 放 .env 文件、不在代码中硬编码的习惯。