大模型网摘deepseek.wang
EN

教程 · 2026-11-04

Python 控制 deepseek-flash 思考模式:thinking 开关与 reasoning_effort 参数实战

deepseek-flash(现由 DeepSeek-V4.1-Flash-1017 提供服务)有一个容易被忽略的默认行为:思考模式默认开启。官方对其的描述是"同时支持非思考与思考(默认)模式"。这意味着如果你直接发起一次普通调用,模型会先思考再作答——质量通常更好,但延迟和输出 token 也随之上涨。本文整理官方文档中的切换方法,并给出什么时候关、什么时候开的判断清单。

参数怎么写:官方示例的原文

官方 Quick Start 的 curl 示例中,请求体包含这样两个字段:

{
  "model": "deepseek-flash",
  "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Hello!"}
  ],
  "thinking": {"type": "enabled"},
  "reasoning_effort": "high",
  "stream": false
}

翻译成 OpenAI SDK 的 Python 写法,就是把这两个键原样放进参数:

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://api.deepseek.com",
)
resp = client.chat.completions.create(
    model="deepseek-flash",
    messages=[{"role": "user", "content": "用三句话解释冯诺依曼架构"}],
    extra_body={
        "thinking": {"type": "enabled"},
        "reasoning_effort": "high",
    },
)
print(resp.choices[0].message.content)

把 thinking 的 type 换成 "disabled" 即进入非思考模式。官方文档另有 Thinking Mode 专页说明切换细节;reasoning_effort 的合法取值以官方文档为准——公开示例中出现了 "high",其余档位本站不臆测。

什么时候关掉思考

三类场景建议直接用非思考模式:格式化任务——改写、摘要、分类、抽取这类模式固定的活,思考带来的增益有限;FIM 补全——官方功能表明确标注 FIM Completion(Beta)仅支持非思考模式,做代码补全时没得选;高频短调用——对话机器人里的寒暄、路由分发、关键词提取,每秒几十次调用时,思考的延迟代价会压垮体验。判断标准可以参考本站提示词频道的"简单任务要不要开深度思考"一文。

什么时候保持开启

多步推理、数学、代码调试、智能体规划(DeepSeek 自己的 Harness 编码智能体就跑在这套模型上)——这些任务的错误代价远高于几秒钟延迟,保持思考开启,必要时配合 reasoning_effort 调高投入。V4.1-Flash-1017 版本对智能体编码场景做过专项强化(技术细节见本站技术报告解读),思考模式正是这些训练成果生效的通道。

成本账:开关只影响 token 数量

官方价格表未对思考模式单列计价项——计费仍按输入/输出 token 总量走。差别在于:思考开启时,推理过程消耗的 token 计入输出,输出单价错峰 0.6 美元/百万 tokens(峰时 1.2 美元);关掉思考,同样的任务输出 token 通常明显更少。跑批任务建议把可关思考的请求安排在错峰时段(UTC 周一至周五 01:00–04:00 与 06:00–10:00 以外),叠加上下文缓存能省得更多。动手前若还没有 Key,先看Python 快速开始。

一句话总结:思考模式是 deepseek-flash 的默认武器而不是默认负担——按任务性质拨开关,而不是全局一刀切。