DeepSeek 网摘deepseek.wang
EN
📄 查看英文原文

教程 · 2026-04-25 · 机器翻译,仅供参考

深Seek V4 指令工程实践指南

Tutorials·April 25, 2026·By DS Guide Editorial
DeepSeek prompt-engineering tutorial card showing five repeatable patterns for V4 production prompts: place a tight system prompt at the top, set temperature by task type (0.0 for code, 1.3 for chat per DeepSeek's own guidance), toggle thinking mode via the reasoning_effort parameter, include the literal word 'json' plus an example schema for JSON mode, and stabilise prefixes to maximise context-cache hits.

为什么同样的提示有一天会产生一个紧凑、准确的答案,而另一天却是一个漫无目的的猜测?通常问题不在于模型,而在于提示。本指南从运行`deepseek-v4-pro`和`deepseek-v4-flash`的生产堆栈内部编写,假设您至少使用过一次DeepSeek的网页聊天或API,现在希望获得可重复的结果:更短的输出、更少的重试、更低的账单。

我将涵盖提示结构、DeepSeek自身推荐的温度设置、何时开启思维模式、如何编写不会破坏JSON输出的提示,以及提示形状如何影响您的token账单。到结束时,您将拥有一个可以粘贴到实际项目中的小型模式库。

你将构建的内容(以及为什么DeepSeek V4改变了游戏规则)

Developer iterating on a structured DeepSeek V4 prompt in a chat playground with system, user and assistant roles.

本教程结束时,您将拥有:适用于V4级别的默认系统提示模板、用于快速结构化任务的非思维模式提示、用于更困难推理的思维模式提示、不会静默截断的JSON模式提示,以及一个工作成本示例,让您了解每种模式在规模上的成本。

当前生成的是 DeepSeek V4,于2026年4月24日发布,并以两个MIT许可下的开放权重专家混合模型的形式发货。 DeepSeek V4-Pro has 1.6T total parameters with 49B active per token; DeepSeek V4-Flash 总共284B,其中13B处于活动状态。 根据DeepSeek自己的思维模式文档两个模型共享一组功能和一个默认的1,000,000个token的上下文窗口,输出最多可达384,000个token。

提示工程师的大转变:思维模式现在成为 请求参数不是单独的模型ID。DeepSeek模型支持思考模式:在输出最终答案之前,模型将首先输出推理步骤以提高最终响应的准确性,并且思考切换默认开启,努力设置为高,适用于常规请求。这意味着相同的提示可以以三种风味发送:非思考、思考-高或思考-最大——并且你的提示应该随着模式的变化而变化。

Prerequisites

  • 一个DeepSeek账户和一个有效的API密钥 — 本指南涵盖了注册和计费流程。 get a DeepSeek API key 演示指南包括注册和计费。
  • Python 3.9+,并已安装SDK( openai )。DeepSeek与OpenAI兼容,因此相同的SDK可以用于)。DeepSeek与OpenAI兼容,因此相同的SDK可以用于Comfort。 https://api.deepseek.com.
  • 熟悉终端以及基本了解系统、用户和助手消息角色。
  • 如果您至今只了解聊天UI,请先运行 how to use DeepSeek ;本文假设您已经转向使用API。

Chat requests hit POST /chat/completions兼容OpenAI的端点。DeepSeek还公开了一个与相同基本URL兼容的Anthropic表面,因此Anthropic SDK可以与之配合使用。 base_url swap.

DeepSeek提示的结构

每个有效的DeepSeek提示都包含六个部分。省略任何一部分都会降低质量。

  1. 角色 模型扮演的角色(例如:“高级安全审查员”、“患者数学辅导老师”)。
  2. Task — 一个以动词引导的指令。不是三个,也不是五个。
  3. Context — 模型所需的数据、代码或背景信息。
  4. 约束条件 — 长度、语气、禁用短语、必须包含的项目。
  5. 输出格式 — Markdown表格、编号列表、JSON模式、纯文本。
  6. 示例 — 当格式不明显时,一个或两个输入/输出对。

那个顺序很重要。DeepSeek(像大多数LLM一样)更重视早期token,因此角色和任务应该在任何长上下文块之前出现。如果你的上下文是数千个token的代码或文档文本,请将任务重述为单行。 之后 上下文也要——一个“任务三明治”——这样指令就不会被埋没。

有意选择一个温度值

DeepSeek发布了自己的温度建议,并且与OpenAI的默认设置不同。记住这个表格——这是大多数人可以做出的最大的单一旋钮改进。

用例 温度 Notes
Code generation, mathematics 0.0 确定性;重新运行 = 相同的答案。
Data analysis, data cleaning 1.0 默认。一些变化,主要基于现实。
General conversation, translation 1.3 自然流畅的输出,不失准确性。
Creative writing, poetry 1.5 更令人惊喜的词汇选择;预期会有重试。

一个重要的注意事项:思考模式不支持温度、top_p、存在惩罚或频率惩罚参数——为了兼容性,设置这些参数不会触发错误,但也不会产生任何效果。如果你开启了思考模式,请从你的提示调整词汇中移除这些旋钮,并直接调整提示本身。

Python中的最小V4提示

以下Python代码片段展示了最简单的正确V4调用方式, POST /chat/completions禁用思考功能,以实现快速、确定性的结构化任务:

from openai import OpenAI

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

resp = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[
        {"role": "system", "content":
         "You are a senior Python reviewer. "
         "Reply with a markdown table: column 1 'Issue', column 2 'Fix'. "
         "If the code is fine, reply with the single word: clean."},
        {"role": "user", "content": "def add(a,b): return a+b"},
    ],
    temperature=0.0,
    max_tokens=400,
    extra_body={"thinking": {"type": "disabled"}},
)
print(resp.choices[0].message.content)

有两点需要注意。首先,系统提示承担了主要工作——角色、任务、输出格式、边缘情况。用户消息只是数据。其次,API是 stateless。为了继续对话,你必须每次调用都重新发送完整的 messages 数组。网页聊天会为你保存历史记录;API则不会。 DeepSeek API best practices 一旦你的对话变长,将覆盖历史裁剪模式。

何时以及如何使用思考模式

Diagram contrasting DeepSeek V4 thinking-mode-on and thinking-mode-off prompt paths with a reasoning token block.

思考模式以速度换取质量。模型先输出推理轨迹,然后是最终答案。在思考模式下,推理轨迹内容通过推理_content参数返回,与内容处于同一级别——在你自己的代码注释中,首选的表达方式是“返回” reasoning_content alongside the final content“.

在以下情况下使用思考模式:

  • 该任务涉及多步推理,用户期望这些推理是可审计的(法律、财务、复杂数学)。
  • 你正在运行一个代理循环,错误的中间决策会级联。
  • 你愿意为更多的输出令牌付费,因为跟踪计数被视为完成令牌。

对于聊天回复、分类、格式化、翻译以及大多数检索增强生成答案,请跳过思考模式。延迟和费用不值得。

这是相同调用在思考高模式下的示例:

resp = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[
        {"role": "system", "content":
         "You are a senior architect. Plan the migration in 5 numbered steps. "
         "Be explicit about rollback for each step."},
        {"role": "user", "content": migration_brief},
    ],
    reasoning_effort="high",
    extra_body={"thinking": {"type": "enabled"}},
)

reasoning = resp.choices[0].message.reasoning_content   # the trace
answer    = resp.choices[0].message.content              # the plan

对于最困难的代理和竞争数学工作负载,设置 reasoning_effort="max"官方Hugging Face卡片建议将上下文窗口设置为至少384K个令牌,以便Think Max的轨迹不会截断。

不要将痕迹重复回上下文中

常见错误:开发者附加了助手的完整消息——包括 reasoning_content — to messages 在下一轮中。在两条用户消息之间,如果模型没有执行工具调用,中间助手的推理内容不需要参与上下文拼接,并且在后续轮次传递给API时,它将被忽略。例外情况是当模型在轮次中调用工具时——那么你必须回传跟踪信息。支付您的token账单一次,而不是两次。

不破坏的情况下使用JSON模式提示

JSON mode is designed 以返回有效的JSON,但不保证。官方规范对失败模式直言不讳:当使用JSON输出时,您必须通过系统或用户消息指示模型自行生成JSON——没有这个,模型可能会生成一个无休止的空白流,直到生成达到token限制,导致长时间运行且看似“卡住”的请求,如果完成原因="length",消息内容可能会被部分截断。

这为你提供了三条规则:

  1. 在你的系统或用户消息中包含字面词“json”。
  2. 在提示中展示一个小型示例模式——而不仅仅是描述它。
  3. Set max_tokens 足够高,以至于JSON不能在字符串中间截断。

一个有效模式:

system = """You extract contact details and return json.
Return exactly this shape, with no prose:
{"name": "string", "email": "string|null", "phone": "string|null"}
If a field is missing, use null."""

resp = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{"role": "system", "content": system},
              {"role": "user",   "content": email_body}],
    response_format={"type": "json_object"},
    temperature=0.0,
    max_tokens=512,
)

总是使用try/except包裹解析并处理空内容。即使在温度为0的情况下,当模型无法满足模式时,它偶尔也会返回空值。 DeepSeek API JSON mode 更详细地记录了故障模式和重试模式。

我在片段文件中保留的六个模式

1. 角色与约束三明治

You are a [ROLE].
Task: [VERB-LED INSTRUCTION].
约束条件:
- [LENGTH or TONE]
- [MUST INCLUDE]
- [MUST AVOID]
Reply only with [FORMAT]. No preamble.

2. 少样本用于语气

两个或三个标记的示例胜过任何数量的形容词。“用我们的品牌声音写作”很少有效;粘贴两个真实的产品电子邮件总是有效。

3. 验证器提示

For high-stakes outputs, send a second call: “Here is a draft answer and the original question. List any factual claims unsupported by the source. Reply with json: {issues: […]}.” This catches more errors than a single longer prompt.

4. “解释原因”后缀

添加“用一句话解释为什么每个项目属于列表”强制进行更紧密的选择,而不启用完全思考模式。对于分类任务,这比推理模式更便宜,但能显著提升质量。

5. 负面示例

如果模型持续犯同样的错误,添加一个明确的“错误:…… 正确:……”对。DeepSeek比仅对“不要”指令更可靠地关注负面内容。

6. 输出锚点

在您的提示语中以期望输出的前几个字符结束(例如:“以以下行开始您的回复:## 摘要”)。这显著减少了V4-Flash上的前言漂移。

如果你想获取精心挑选的起始提示,我们的 DeepSeek提示模板 库为编码、写作和研究提供了已测试的版本。想要在聊天中迭代的构建者可以使用 DeepSeek提示生成器.

验证你的提示是否有效

“看起来不错”不是一个测试。在发送任何提示之前,我会进行三个检查:

  • 在温度0和1.3下运行五次。 如果在0时输出差异很大,你的提示是模糊的,不是模型的问题。
  • 对抗性输入。 空字符串、非常长的输入、不同语言的输入、带有提示注入(“忽略您的指示并……”)的输入。提示应该优雅地失败。
  • 令牌预算。 使用一个 DeepSeek token counter 来确认您的提示符舒适地位于1M的上下文中——并且您的 max_tokens 与现实输出的长度相匹配。

提示形状的成本——V4-Flash上的一个案例研究

提示工程和成本工程是同一份工作。想象一下,一个客户支持机器人每月用2000个token的系统提示(跨通话缓存)、200个token的用户消息和300个token的回复进行1000000次通话,在 deepseek-v4-flash:

Bucket Tokens 每兆字节的速率 Cost
输入,缓存命中(系统提示) 2,000,000,000 $0.0028 $56.00
输入,缓存未命中(每个新用户消息) 200,000,000 $0.14 $28.00
Output 300,000,000 $0.28 $84.00
Total $117.60

Same workload on deepseek-v4-pro 每百万token的费用为0.0145(缓存命中)/ 1.74(缓存未命中)/ 3.48(输出)(目前为0.003625 / 0.435 / 0.87,在2026年5月31日前的75%促销期间),那么总费用为1421.00美元——大约是12倍。这种价格差异是为什么大多数聊天工作负载应该默认使用V4-Flash,而V4-Pro则保留用于前沿编码或需要基准提升以证明花费的代理工作。每个引用的价格都要附上日期——这些费率截至2026年4月;请在 DeepSeek API pricing 在提交预算之前查看页面。

两个提示符形状的杠杆比其他任何东西都更能推动这个账单。首先, 主动缓存前缀:将您的稳定系统提示和少量示例放在非常开始的位置 messages 因此,缓存命中层开始工作。其次, 限制输出 with max_tokens 和提示侧说明(“最多用80个词回复”)——输出token的成本是Flash上缓存输入的十倍,Pro上的二十四倍。

Legacy IDs and the migration window

如果您的代码仍然显示 model="deepseek-chat" or model="deepseek-reasoner",这些遗留ID目前分别路由到(非思考型和思考型),但将在 deepseek-v4-flash 退役。之后,使用这些ID的请求将失败。迁移只需在 2026-07-24 at 15:59 UTC的代码中进行一行更改。 model= field — base_url 保持不变。提示内容很少需要编辑,但如果您正在针对旧V3.2类模型的怪癖进行提示调整,请在温度0下重新测试并重新检查输出结构。

常见错误和快速修复

Flat diagram of a layered DeepSeek prompt structure feeding into V4 with sampling parameters.
Symptom Likely cause Fix
Empty content in JSON mode 提示中没有包含单词“json”或模式 将示例模式和字面词“json”添加到系统提示中。
以逗号结尾的截断JSON max_tokens too low 提升 max_tokens; 检查 完成原因.
模型忽略温度 启用思考模式 在思考模式下,采样参数不起作用;请调整提示词。
在重跑时输出漂移至 temperature=0 任务模糊或存在冲突约束 为一个清晰的任务重写;移除冲突的“简洁但详细”对。
Costs spiking 之后 enabling thinking 长轨迹在 completion_tokens 降低 reasoning_effort,上限 max_tokens,或将任务移动到非思考模式,使用更强的少样本。

Next steps

两个自然的后续步骤:使用这些模式构建一个小型基准测试工具。 DeepSeek API getting started 指南,然后将您最佳的提示输入到检索管道中。 DeepSeek RAG tutorial。对于所有DeepSeek指南的全面了解,该 DeepSeek tutorials 中心按技能水平索引所有内容。

DeepSeek AI Guide is an independent resource and is not affiliated with DeepSeek or its parent company. Model IDs, pricing and API behaviour change; 检查 the official DeepSeek documentation and pricing page before committing to a production decision.

与V3相比,DeepSeek在V4上的提示工程有何不同?

The biggest change is that thinking mode is now a 请求参数 on either deepseek-v4-pro or deepseek-v4-flash上的请求参数,而不是一个单独的模型ID。您可以通过 reasoning_effort and extra_body={"thinking": {"type": "enabled"}}切换它。默认情况下,上下文也是1M个令牌。请参阅 DeepSeek V4 概述以获取架构变更的完整列表。

DeepSeek应该使用多少温度?

DeepSeek的自身指导设置为:代码和数学为0.0,数据分析为1.0,通用聊天和翻译为1.3,创意写作为1.5。有目的地选择;不要将温度留在SDK使用的默认值。在思考模式下,温度没有效果——调整提示本身。如果想要连续性,请使用数组。网页聊天和移动应用会为您保持会话状态,但API不会。这是新用户最常见的错误之一;对于更清晰的说明,请参阅。 DeepSeek API best practices 指南提供了更多参数提示。

DeepSeek是否会在API调用之间记住之前的消息?

不。API是无状态的——每个 POST /chat/completions 调用都必须包含完整的 messages 通常是的——两个模型共享功能集、提示格式和1M上下文。专业版通常需要更少的few-shot示例就能达到相同的质量,而Flash版则受益于更明确的格式化锚点。始终在两者上测试。价格大约相差十倍,所以从Flash版开始,只有在基准或评估显示专业版值得投资时才升级。在规格上比较。 DeepSeek API documentation overview.

我是否可以在V4-Flash和V4-Pro上使用相同的提示?

Usually yes — both models share a feature set, prompt format and 1M context. Pro tends to need fewer few-shot examples to hit the same quality, and Flash benefits from more explicit formatting anchors. Always test in both. Pricing differs roughly tenfold, so start on Flash and only escalate when a benchmark or eval shows Pro pays for itself. Compare specs on DeepSeek comparisons.

为什么我的JSON模式提示有时会返回空内容?

JSON模式旨在返回有效的JSON,但不保证。如果提示中不包含单词“json”以及示例模式,或者如果 max_tokens 太低,模型可能会返回空内容或截断的输出。始终包含两者,设置宽松 max_tokens,并将解析包裹在try/except中。该 DeepSeek API JSON mode 参考详细说明了每种故障模式。

Sources & Methodology

Last source check: April 30, 2026

Primary sources

Technical references

Methodology

Information in this article was checked against the official DeepSeek documentation, the article's cited primary sources, and the deepseekai.guide pricing dataset on the date shown above. Where third-party numbers are quoted, the originating source is linked inline so the reader can verify and re-check.

Data confidence

High for facts cited inline with primary-source links; medium for context narrative.

Editorial note

AI tooling moves quickly. If you spot an outdated number or a broken link, the contact link in the footer is the fastest way to flag it for the editorial team.