On October 17, DeepSeek updated V4.1 Flash to DeepSeek-V4.1-Flash-1017. The web app, the mobile app and the API all switched to the new version the same day, and API usage and pricing are unchanged: the model name is still deepseek-flash. DeepSeek also opened Search / Fetch APIs for its in-house search engine that day, which we cover in a separate tutorial (in Chinese). This post is only about the model.
It’s organized around the questions people ask most. Benchmarks, prices, parameters and limits all come from DeepSeek’s official API docs, changelog and Hugging Face model page, checked on October 18, 2026 (Beijing time). I didn’t run any evaluations myself; the benchmark numbers are DeepSeek’s published figures.
What changed in this update?
DeepSeek calls it a “minor version update”, with three main points:
- Benchmarks up across the board: reasoning, coding, agent tasks and image understanding all score higher than the previous V4.1 Flash.
- Faster and leaner: it finishes the same tasks in less time and with less output. Less output means a lower bill, since you pay per token.
- Geared toward building complete projects from scratch: DeepSeek says it used self-feedback-based reinforcement learning to improve its ability to build a whole project from zero. The demos include a 3D model of Beijing’s Forbidden City, a browser racing game and a Godot remake of Portal 2. DeepSeek calls this “wish-style programming”: you describe what you want and the model builds it.
The update was also specifically optimized for DeepSeek Harness and for Tencent’s CodeBuddy and WorkBuddy coding tools. If you use DeepSeek Harness, DeepSeek recommends upgrading to 0.2.1-rc.1 or later.
How much did the benchmarks improve?
Here are a few that matter for everyday use, from the Hugging Face model page (DeepSeek’s own testing):
| Benchmark | What it tests | V4.1 Flash (September) | V4.1 Flash 1017 |
|---|---|---|---|
| Terminal-Bench 4.0 | Completing tasks in a terminal (tested with the Claude Code harness) | 31.2 | 42.3 |
| DeepSWE v1.1 | Fixing issues in real code repositories | 74.2 | 77.0 |
| ProgramBench | Writing programs | 20.3 | 29.1 |
| NL2Repo-Bench | Generating an entire repo from a description | 65.4 | 68.2 |
| Automation-Bench v1.0.6 | Automation tasks | 54.8 | 60.5 |
| HLE (no tools) | Very hard general Q&A | 36.8 | 42.6 |
| BabyVision (with tools) | Image understanding | 89.6 | 92.5 |
The biggest jump is Terminal-Bench 4.0, from 31.2 to 42.3. The model page also lists some competitors: on Terminal-Bench 4.0, GPT-5.6 Sol scores 39.9 and Opus 5 scores 51.8; on DeepSWE v1.1, Opus 5 scores 74.0. So this Flash-tier model is roughly level with flagship models on some coding benchmarks, but there’s still a clear gap to Opus 5 on HLE and ProgramBench. Vendor-published benchmarks are only a reference; on your own projects, you’ll have to try it yourself.
Do I need to change my code? Did the price change?
No code changes needed. Keep using the deepseek-flash model name and your requests are handled by 1017. The older names deepseek-v4-flash and deepseek-v4-flash-vision-exp still work, but those models have been retired and requests are routed to 1017 and billed at the Flash price. It’s a good moment to switch every old name in your code to deepseek-flash, so nothing breaks when the old names are eventually turned off.
The price hasn’t changed. DeepSeek’s pricing page lists deepseek-flash per million tokens in USD on the English version and in RMB on the Chinese version:
| Item | Off-peak | Peak |
|---|---|---|
| Input (cache hit) | $0.003 (¥0.02) | $0.006 (¥0.04) |
| Input (cache miss) | $0.15 (¥1) | $0.30 (¥2) |
| Output | $0.60 (¥4) | $1.20 (¥8) |
Peak hours are 9:00–12:00 and 14:00–18:00 Beijing time (01:00–04:00 and 06:00–10:00 UTC), Monday through Friday, excluding Chinese public holidays. Everything else is billed at the off-peak rate, which is half price. Weekends and Chinese public holidays are off-peak all day, so if you move batch jobs to evenings or weekends (Beijing time), your bill is cut in half.
Two more specs: a 1M-token context window and up to 384K output tokens; the concurrency limit for deepseek-flash is 2,500.
If you want stronger reasoning, you can switch to deepseek-v4-pro (currently DeepSeek-V4-Pro-0813). It costs quite a bit more: peak cache-miss input is $1.32 (¥9) per million tokens and output is $3.96 (¥27), and it doesn’t support image understanding. Going by this round of official benchmarks, I’d start with Flash for most use cases.
Can it see images now? How do I send images through the API?
Yes. Only deepseek-flash supports image understanding; deepseek-v4-pro doesn’t. You can have it describe images, read text in screenshots and analyze charts.
Images are sent the OpenAI-compatible way: content becomes an array with separate text and image parts. For local images, the easiest route is base64:
import base64, os
from openai import OpenAI
client = OpenAI(api_key=os.environ["DEEPSEEK_API_KEY"], base_url="https://api.deepseek.com")
with open("screenshot.png", "rb") as f:
b64 = base64.b64encode(f.read()).decode()
resp = client.chat.completions.create(
model="deepseek-flash",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Turn the table in this screenshot into Markdown"},
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{b64}"}},
],
}],
)
print(resp.choices[0].message.content)
You can also pass a public image URL, or upload the image first with the Files API and reference it by file_id (the most convenient option when you reuse the same image across many requests).
A few easy-to-miss gotchas, all from the official image understanding docs:
- JPEG, PNG, GIF and WebP are supported. The format is detected from the file’s actual contents, so renaming the extension won’t help.
- Images can only go in
usermessages; putting them insystemorassistantmessages returns a 400 error. - Each image counts as at most 1,024 tokens. Large images are scaled down automatically, so a 2000×2000 image costs the same as a 5000×5000 one. When you don’t need detail, add
"detail": "low"and the image is first shrunk to 512×512, which is faster and cheaper. - The maximum request body is 48 MiB, a single image sent as base64 or a URL can be up to 32 MiB, and one request can include up to 600 images.
If you’d hooked up a separate vision model just to handle images, it’s worth trying DeepSeek directly now: one less API key to manage.
How do I turn thinking mode on and off?
Thinking mode is on by default, with reasoning effort set to high by default. With the OpenAI SDK:
resp = client.chat.completions.create(
model="deepseek-flash",
messages=[{"role": "user", "content": "Which is bigger, 9.11 or 9.8?"}],
reasoning_effort="high", # low / high / max
extra_body={"thinking": {"type": "enabled"}}, # set to disabled to turn it off
)
print(resp.choices[0].message.reasoning_content) # the reasoning
print(resp.choices[0].message.content) # the final answer
Two details: in thinking mode, parameters like temperature don’t throw an error but have no effect; and when you use tools for tool calling, you must pass back every earlier turn’s reasoning_content unchanged, or you’ll get a 400 error. For simple classification or translation tasks you can turn thinking off for faster replies and fewer output tokens.
How do I use 1017 in Claude Code?
DeepSeek offers an Anthropic-compatible endpoint, so Claude Code only needs a few environment variables. Here’s the configuration from the official docs (Linux / Mac):
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=your-deepseek-api-key
export ANTHROPIC_MODEL="deepseek-flash[1m]"
export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-flash[1m]"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-flash[1m]"
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-flash
export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-flash
export CLAUDE_CODE_EFFORT_LEVEL=max
export CLAUDE_CODE_AUTO_COMPACT_WINDOW=786432
On Windows, set the same variables in PowerShell with $env:NAME="value". Once they’re set, run claude in your project directory and you’re done.
Watch out for one model-mapping rule: if you don’t change the model names and just pass Claude model names through, anything starting with claude-opus is mapped to deepseek-v4-pro and billed at V4 Pro prices; only names starting with claude-sonnet or claude-haiku map to deepseek-flash. If you want the cheaper Flash all the way through, set all the model variables to deepseek-flash as shown above.
One more cost to keep in mind: in Claude Code, Codex and DeepSeek Harness, the web searches the model makes on its own go through DeepSeek’s Search / Fetch APIs. They’re free right now, but per-request billing starts at 00:00 Beijing time on November 1, 2026 (October 31, 16:00 UTC): $0.75 (¥5) per 1,000 successful requests. If your agents browse the web a lot, keep an eye on your bill after November 1.
If you use several coding agents and don’t want to edit environment variables for each one by hand, a local gateway like Magpie lets you switch models from the menu bar.
Are the weights open? Can I run it on my own computer?
The weights are open under the MIT license and can be downloaded from Hugging Face and from ModelScope (Alibaba’s model hub); both repos are named deepseek-ai/DeepSeek-V4.1-Flash-1017. The model page also notes:
- There’s no Jinja chat template this time. The
encodingfolder has a Python reference implementation (encoding.py), and for production you can use the official deepseek-recipe (a Rust library with Python bindings) to handle prompt formatting. - Recommended sampling:
temperature1.0,top_p1.0, with a 1M-token context.
As for running it on your own computer: pretty much forget it. When V4.1 Flash launched in September, DeepSeek described it as a 552B-parameter MoE model (8B active for input, 16B active for output), while the Hugging Face page shows 763B parameters. Either way, it’s far beyond the memory of a home computer.
I looked it up on llmspeed: the V4.1 Flash Q4_K_M quantization it lists is about 445 GB, and both the 24 GB RTX 4090 and the 32 GB RTX 5090 show “doesn’t fit”. By its estimate, you’d need a 512 GB Mac Studio with a lower Q3 or Q2 quantization to fit it at all. For individuals, the API or the web app is the realistic option.
Do I need to do anything in the web app or mobile app?
Nothing at all. DeepSeek says the web app and mobile app have already switched to the new model, so you’re on 1017 as soon as you open them. Both remain free to use.
My recommendations
- Already using the API: no changes needed; your next request hits the new model. While you’re at it, replace any old
deepseek-v4-flashnames in your code withdeepseek-flash. - Using a separate vision model just for images: try
deepseek-flash‘s image understanding, which costs the same as regular Flash. - Coding with Claude Code and want to save money: hook it up with the environment variables above and set all the model variables to Flash so nothing gets mapped to V4 Pro.
- Batch jobs: run them on weekends or weekday evenings (Beijing time) to get the off-peak half price.


