AI HAS A HYPE PROBLEM. WE DON'T.

AI Tips Today · DeepSeek V4-Flash

DeepSeek V4-Flash Ships With Thinking On at High Effort, and Your Temperature Setting Does Nothing

Teams adopting DeepSeek V4-Flash 0731 for its fourteen cent input price are quietly paying for high effort reasoning on every call, because thinking mode is on by default. Four sampling parameters they carried over from another provider are being accepted and silently ignored at the same time.

DeepSeek released V4-Flash 0731 at the end of July at fourteen cents per million input tokens and twenty eight cents per million output tokens, and it immediately became the default recommendation for cost sensitive production workloads. The number that makes it attractive is an input price. The number that determines your actual bill is the output price multiplied by the reasoning tokens the model generates before it answers, and on this model thinking mode is enabled by default with the default effort set to high. A team that swapped the model string in an existing integration and changed nothing else is running the most expensive configuration the model offers while believing it bought the cheapest one.

Turning it off is one field, and it does not live where the OpenAI SDK expects. The toggle is a request body flag passed through extra_body as a thinking object with type set to enabled or disabled. Effort is a separate parameter, reasoning_effort, which accepts low, high and max. The two are independent: setting reasoning_effort to low still leaves thinking on, just cheaper. For the substantial share of production traffic that is classification, extraction, formatting or routing, disabling thinking outright is the correct call, and it is the single largest cost lever on this model.

The effort mapping is where the two V4 variants stop behaving alike, and this is the detail most likely to burn a team that tests on one and deploys on the other. On deepseek-v4-flash the requested effort maps through honestly: low stays low, high stays high, max stays max, and xhigh collapses to high. On deepseek-v4-pro the floor is raised, so a request for low is served at high and xhigh is served at max. You cannot economize on the pro variant by asking for less effort. If your cost model assumes low effort behaves the same across both, it is wrong for one of them, and the direction of the error is always against you.

Two more behaviours will produce bugs rather than invoices. First, thinking mode does not support temperature, top_p, presence_penalty or frequency_penalty, and for compatibility with existing software the API accepts all four without error and then ignores them. Any tuning you carried over from another provider is decoration. If those settings actually matter to your output, you need thinking disabled, not merely turned down. Second, the chain of thought comes back on reasoning_content, a sibling field to content rather than part of it. When your request carries a tools array, that reasoning_content must be passed back in every subsequent request in the exchange or the API returns a 400. Without tools it is ignored on the way back in. That asymmetry means a conversation loop that works perfectly in a plain chat test can fail the moment you attach a tool, which is exactly the point at which most teams stop watching it closely.

Try it today

  1. Log the reasoning token count on a representative sample of your current DeepSeek V4-Flash traffic. If you never set the thinking flag, you are being billed for high effort reasoning on every one of those calls.
  2. Split your traffic by task. Send classification, extraction, formatting and routing requests with extra_body set to a thinking object of type disabled, and keep thinking enabled only where the answer genuinely benefits from deliberation.
  3. For the requests that keep thinking on, set reasoning_effort to low and measure quality against your own evaluation set before assuming high was necessary.
  4. Delete or relocate any temperature, top_p, presence_penalty or frequency_penalty values on thinking mode calls. They are silently ignored, and leaving them in the code implies a control you do not have.
  5. If you also run deepseek-v4-pro, measure its costs separately. A request for low effort is served at high on that variant, so any savings you recorded on Flash will not reproduce.
  6. Audit every tool calling loop to confirm reasoning_content is appended back into the message list on each turn. Attach a tool to an existing conversation test and confirm it does not return a 400.
DeepSeek V4-FlashCost ControlAPI ConfigurationAgentic AI