DeepSeek V4 推理模式(Thinking Mode)API 教程:CoT 链式思考实战(2026)

DeepSeek V4 推理模式(Thinking Mode)API 教程:CoT 链式思考实战(2026)

TL;DR — DeepSeek V4 支持 thinking mode(推理模式),通过 Chain-of-Thought(链式思考)输出完整推理过程,在数学、代码、逻辑推理等任务上表现优异。本文介绍如何通过 API 启用 thinking mode,并给出实战场景和成本优化建议。

DeepSeek V4 的 Thinking Mode 是什么?

DeepSeek V4 支持两种工作模式:

维度Thinking Mode(推理模式)普通模式
核心能力深度推理、多步思考通用对话、代码生成
输出方式显式 CoT 思考过程 + 最终答案直接给出答案
适用场景数学证明、算法设计、复杂 debug日常对话、文档生成、简单编程
响应速度较慢(需要推理时间)
价格输出 token 更贵(包含推理过程)相对便宜
启用方式extra_body={'thinking': {'type': 'enabled'}}默认模式

Chain-of-Thought(CoT)是什么?

CoT 是一种让 AI 模型”展示思考过程”的技术。传统模型直接给答案,CoT 模型会先输出推理步骤,再给结论。

示例对比

问题:一个数列 2, 6, 12, 20, 30… 第 10 项是多少?

通用模型(普通模式)

第 10 项是 110。

Thinking Mode(推理模式)

<thinking>
观察数列规律:
- 2 = 1×2
- 6 = 2×3
- 12 = 3×4
- 20 = 4×5
- 30 = 5×6

发现规律:第 n 项 = n × (n+1)

验证:
- n=1: 1×2=2 ✓
- n=2: 2×3=6 ✓
- n=3: 3×4=12 ✓

所以第 10 项 = 10 × 11 = 110
</thinking>

第 10 项是 110。

CoT 的价值在于:

  • 可验证性:能看到推理过程,发现错误更容易
  • 可调试性:如果答案错了,能定位是哪一步推理出错
  • 可信度:有推理依据的答案比”黑盒输出”更可信

如何调用 DeepSeek V4 的 Thinking Mode?

DeepSeek V4 通过官方 API 提供服务,使用 OpenAI 兼容接口。

DeepSeek 官方 API

Python 示例

from openai import OpenAI

client = OpenAI(
    api_key="your-deepseek-api-key",
    base_url="https://api.deepseek.com"
)

response = client.chat.completions.create(
    model="deepseek-v4-flash",  # 或 deepseek-v4-pro
    messages=[
        {
            "role": "user",
            "content": "证明:对于任意正整数 n,n^3 - n 能被 6 整除。"
        }
    ],
    extra_body={
        "thinking": {
            "type": "enabled"  # 启用 thinking mode
        }
    }
)

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

cURL 示例

curl https://api.deepseek.com/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-deepseek-api-key" \
  -d '{
    "model": "deepseek-v4-flash",
    "messages": [
      {
        "role": "user",
        "content": "写一个算法:找出数组中和为目标值的两个数的索引。要求时间复杂度 O(n)。"
      }
    ],
    "thinking": {
      "type": "enabled"
    }
  }'

Node.js 示例

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: process.env.DEEPSEEK_API_KEY,
  baseURL: 'https://api.deepseek.com'
});

const response = await client.chat.completions.create({
  model: 'deepseek-v4-flash',
  messages: [
    {
      role: 'user',
      content: '分析这段代码的时间复杂度,并给出优化建议:\n\nfor i in range(n):\n    for j in range(n):\n        if arr[i] + arr[j] == target:\n            return [i, j]'
    }
  ],
  extra_body: {
    thinking: {
      type: 'enabled'
    }
  }
});

console.log(response.choices[0].message.content);

重要说明

  • Thinking mode 默认启用,但建议显式声明 extra_body 参数以确保明确性
  • Thinking mode 不支持 temperaturetop_ppresence_penaltyfrequency_penalty 参数
  • 可选模型:deepseek-v4-flash(更快更便宜)或 deepseek-v4-pro(更强推理能力)

获取 API Key

  1. 访问 DeepSeek 官网
  2. 注册账号并完成认证
  3. 在控制台创建 API Key
  4. 充值后即可使用(支持国际信用卡)

注意事项

  • DeepSeek 官方 API 可能需要科学上网访问
  • 支付方式为国际信用卡
  • 建议设置使用额度上限,避免超支

实战场景:什么时候用 Thinking Mode?

✅ 适合用 Thinking Mode 的场景

1. 复杂数学问题

response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{
        "role": "user",
        "content": "一个圆柱体的体积是 100π cm³,高是 4 cm。如果将这个圆柱体熔化后铸成一个球,求球的半径。"
    }],
    extra_body={"thinking": {"type": "enabled"}}
)

Thinking mode 会输出完整的推导过程:求圆柱底面积 → 求半径 → 计算球体积公式 → 求球半径。

2. 算法设计与优化

response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{
        "role": "user",
        "content": "设计一个数据结构,支持以下操作,所有操作时间复杂度 O(1):\n1. insert(val): 插入元素\n2. remove(val): 删除元素\n3. getRandom(): 随机返回一个元素"
    }],
    extra_body={"thinking": {"type": "enabled"}}
)

Thinking mode 会分析每种数据结构的优缺点,推导出最优方案(数组 + 哈希表组合)。

3. 代码 Bug 定位

response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{
        "role": "user",
        "content": """这段代码有 bug,找出问题并解释原因:

def binary_search(arr, target):
    left, right = 0, len(arr)
    while left < right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid
        else:
            right = mid
    return -1
"""
    }],
    extra_body={"thinking": {"type": "enabled"}}
)

Thinking mode 会逐步分析:循环条件 → 边界更新 → 发现死循环问题 → 给出修复方案。

4. 逻辑推理题

response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{
        "role": "user",
        "content": "有 3 个开关和 3 盏灯在不同房间。你只能进入灯的房间一次。如何确定每个开关控制哪盏灯?"
    }],
    extra_body={"thinking": {"type": "enabled"}}
)

❌ 不适合用 Thinking Mode 的场景

1. 简单问答(用普通模式更快更便宜)

# 不要用 thinking mode
"Python 怎么读取文件?"
"什么是 REST API?"

2. 创意写作(推理模式不擅长创意)

# 不要用 thinking mode
"写一篇关于春天的散文"
"帮我起 10 个产品名字"

3. 闲聊对话(推理过程是浪费)

# 不要用 thinking mode
"今天天气怎么样?"
"推荐几部电影"

成本优化策略

1. 按场景选模式

任务类型推荐配置原因
复杂推理V4 + thinking mode需要 CoT
简单编程V4 普通模式快且便宜
文档生成V4 普通模式通用能力强
多模态任务V4 普通模式支持图片/视频

示例:智能路由

def route_model(question):
    # 简单问答 → 普通模式
    if is_simple_qa(question):
        return {
            "model": "deepseek-v4-flash",
            "extra_body": {}  # 不启用 thinking
        }
    
    # 复杂推理 → thinking mode
    elif requires_reasoning(question):
        return {
            "model": "deepseek-v4-flash",
            "extra_body": {"thinking": {"type": "enabled"}}
        }
    
    # 默认普通模式
    else:
        return {
            "model": "deepseek-v4-flash",
            "extra_body": {}
        }

# 使用示例
config = route_model(user_question)
response = client.chat.completions.create(
    model=config["model"],
    messages=[{"role": "user", "content": user_question}],
    **config
)

2. 控制输出长度

Thinking mode 的 CoT 输出很长,可以通过 max_tokens 限制:

response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{"role": "user", "content": "..."}],
    extra_body={"thinking": {"type": "enabled"}},
    max_tokens=1000  # 限制输出长度
)

3. 缓存推理结果

对于重复的推理问题,缓存结果避免重复调用:

import hashlib
import json

cache = {}

def cached_reasoning(question):
    key = hashlib.md5(question.encode()).hexdigest()
    
    if key in cache:
        return cache[key]
    
    response = client.chat.completions.create(
        model="deepseek-v4-flash",
        messages=[{"role": "user", "content": question}],
        extra_body={"thinking": {"type": "enabled"}}
    )
    
    result = response.choices[0].message.content
    cache[key] = result
    return result

模式选择指南

根据任务特点选择合适的模式:

场景推荐配置理由
复杂数学题V4 + thinking modeCoT 推理最强
日常编程V4 普通模式快且便宜
多模态(图片/视频)V4 普通模式原生多模态
超长上下文(1M+)V4 普通模式支持百万 token
简单问答V4 普通模式最快最便宜

决策树

需要推理过程?
├─ 是 → V4 + thinking mode
└─ 否 → V4 普通模式

常见问题排查

1. 响应很慢

原因:Thinking mode 需要推理时间,比普通模式慢 2-5 倍。

解决

  • 确认场景真的需要推理(简单问题用普通模式)
  • 使用 streaming 模式实时返回思考过程
  • 设置合理的 timeout
response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{"role": "user", "content": "..."}],
    extra_body={"thinking": {"type": "enabled"}},
    stream=True  # 流式返回
)

for chunk in response:
    print(chunk.choices[0].delta.content, end='')

2. 输出 token 消耗很大

原因:CoT 会输出完整推理过程,token 数是普通回答的 3-10 倍。

解决

  • max_tokens 限制输出长度
  • 在 prompt 中要求”简洁推理”
  • 对于不需要看推理过程的场景,用普通模式
messages=[{
    "role": "user",
    "content": "用最简洁的推理步骤回答:..." # 提示简洁
}]

3. 推理过程不准确

原因:复杂问题可能推理出错。

解决

  • 在 prompt 中给出示例推理过程
  • 多次调用取一致结果
  • 注意:thinking mode 不支持 temperaturetop_p 等参数
response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{"role": "user", "content": "..."}],
    extra_body={"thinking": {"type": "enabled"}}
    # 注意:不要设置 temperature 等参数
)

总结

DeepSeek V4 的 thinking mode 是专注于推理任务的强大功能:

  • 适合场景:数学、算法、代码 debug、逻辑推理
  • 推理能力:通过 CoT 输出完整思考过程
  • API 接入:OpenAI 兼容接口,易于集成
  • ⚠️ 注意:不适合简单问答、创意写作、闲聊

快速开始

  1. 访问 DeepSeek 官网 获取 API Key
  2. 安装 OpenAI SDK:pip install openai
  3. 使用 deepseek-v4-flashdeepseek-v4-pro 模型
  4. 添加 extra_body={'thinking': {'type': 'enabled'}} 启用推理模式

相关阅读