
DeepSeek V4.1 Flash Migration Guide: Pro, Flash & Vision
deepseek-v4-flash and deepseek-v4-pro are not affected and continue to serve DeepSeek V4 Flash and V4 Pro. Only deepseek-v4-flash-vision-exp has changed: it now redirects to DeepSeek V4.1 Flash. You can keep existing Flash and Pro workloads running while you evaluate V4.1 Flash side by side, instead of migrating on the provider's deadline.What changed, by model ID
| Model ID | DeepSeek direct API | EvoLink | What to do |
|---|---|---|---|
deepseek-v4-flash | Forwards to V4.1 Flash since September 10 | Not affected; still DeepSeek V4 Flash | Keep running; evaluate V4.1 Flash when image input or the newer model is useful |
deepseek-v4-flash-vision-exp | Forwards to V4.1 Flash since September 10 | Redirects to DeepSeek V4.1 Flash | Re-run your image evaluation set; switch the ID to deepseek-v4.1-flash |
deepseek-v4-pro | Forwards to V4.1 Flash from September 14, 04:00 UTC | Not affected; still DeepSeek V4 Pro | Direct-API users: prepare before the cutoff. EvoLink users: no forced change |
deepseek-flash | Current V4.1 Flash name | Not an EvoLink model ID | Use only on DeepSeek's direct API |
deepseek-v4.1-flash | Not a DeepSeek direct-API name | DeepSeek V4.1 Flash | Use for new EvoLink integrations |
/deepseek-v4-1-flash uses hyphens; it is not a model ID. A response that echoes your requested name is useful for logging, but keep your own record of which provider and ID produced each result.Which applications need action first?
Prioritize by where the request goes and by the consequence of a changed answer.
| Application | Situation | First action |
|---|---|---|
Calls deepseek-v4-pro on DeepSeek's direct API | Moves to V4.1 Flash on September 14 | Save baseline outputs and tests before the cutoff; decide whether V4.1 Flash passes or you need to keep V4 Pro through another route such as EvoLink |
Calls deepseek-v4-flash or deepseek-v4-flash-vision-exp on DeepSeek's direct API | Already served by V4.1 Flash | Compare recent results with outputs saved before September 10 |
Uses deepseek-v4-flash-vision-exp on EvoLink | Already redirected to V4.1 Flash | Re-run the visual evaluation set; update the ID to deepseek-v4.1-flash |
Uses deepseek-v4-flash or deepseek-v4-pro on EvoLink | Unchanged | No forced migration; evaluate V4.1 Flash on a sample of real tasks |
| Uses Flash and Pro as mutual fallbacks on DeepSeek's direct API | Both names reach V4.1 Flash after September 14 | Replace the pair with routes that still serve different models, for example V4 Flash and V4 Pro on EvoLink, and confirm separately that they do not share a provider, quota or failure mode |
Avoid expanding production traffic while a required protocol, billing rule or rollback target is still unknown. You can still prepare test fixtures, configure a candidate route and evaluate noncritical tasks. A small successful text response is the start of validation, not the end.
Keep the first change small, then test the client contract
Keep the existing prompt, tool schema and task fixtures stable during the first comparison. Changing the model, client library, prompt and reasoning settings together makes a regression difficult to diagnose.
deepseek-v4.1-flash, and start from the request examples on the model page. The DeepSeek Chat documentation describes the shared DeepSeek request format on EvoLink. Do not transplant a direct-provider example without checking its endpoint, authentication and supported fields.Review these client behaviors separately:
- Thinking controls: DeepSeek documents thinking as enabled by default on its direct API. Check which setting your requests actually use rather than interpreting "optional" as "off," and record it with each evaluation run. Thinking guide
- Conversation history: verify which messages, reasoning blocks and tool results must be replayed. A successful first turn does not establish that a multistep conversation works.
- Tool execution: check tool names, argument parsing, call IDs, result ordering and the next assistant turn. Use harmless test tools before connecting actions with external side effects.
- Streaming: ensure the client handles completion and interruption events correctly. Record time to first output and time to a complete usable answer separately.
- Image input: image fields differ by protocol (
image_urlfor Chat Completions, animageblock for Messages,input_imagefor Responses). Test one image on the protocol you use before adding a batch. - Usage: inspect the actual response fields and account charges. Missing cached-token data is unknown usage, not automatically zero cache hits.
Compare against the model you use today
deepseek-v4-flash or deepseek-v4-pro) and against deepseek-v4.1-flash, then compare the results side by side.Vision Exp is the exception: its ID already redirects to V4.1 Flash, so the original model is no longer available to compare against. Use outputs you saved before the redirect. The same applies to the old names on DeepSeek's direct API. Sending one prompt to two names that reach the same model is not a model comparison.
Start with a manageable set of representative tasks. For example, select 30–50 fixtures across routine work, difficult cases, long-context inputs and known failures. This is a suggested starting sample, not a statistical guarantee. Include enough examples from each important workload that one good demo cannot hide a failure elsewhere.
| Workload | Preserve from the current integration | Measure on the candidate |
|---|---|---|
| Coding | Input files, requested change, accepted patch and test suite | Test pass rate, unexpected edits, incomplete tasks and review effort |
| Agent tools | Tool schemas, expected call sequence and final state | Correct arguments, duplicate calls, recovery and successful completion |
| Structured extraction | Inputs, expected fields and validation rules | Schema validity, missing values, false values and review rate |
| Vision | Original images and labeled visible evidence | Field accuracy, invented details and handling of unreadable content |
| Long-context analysis | Required source passages and reference answer | Evidence recall, unsupported claims, latency and task cost |
Store the request configuration beside each result: model ID, verification date, output limit, reasoning controls, prompt revision, tool definitions and context size. Repeat cases whose outputs vary enough to affect the decision. Report uncertainty instead of turning a single run into a universal ranking.
Define failure before running the evaluation. An invalid patch, a tool argument that acts on the wrong record, or a fabricated required field should fail even if the response reads well. For less critical style differences, use a separate review category so they do not hide functional regressions.
Migration acceptance record
Keep one record per test case in a shared sheet. It ties each result to the conditions it ran under, the cost it produced and the decision it supports, so a cutover can be approved or paused from the same evidence.
| Field group | What to record |
|---|---|
| Identity and conditions | Provider and base URL; current and candidate model ID; protocol; thinking setting and effort; prompt version; fixture-set version |
| Task and result | Case ID; input type (text or image); expected result; actual output; pass or fail with reason; tool side effects or duplicate calls |
| Runtime and cost | Time to first output; time to a complete result; input, cached and output usage; final charge; retry count |
| Release decision | Your pass threshold (for example, zero critical failures); observation window; condition to expand traffic; condition to pause; fallback target that matches the input type |
Example entry (illustrative only, not a measured result):
| Field | Example |
|---|---|
| Case ID | INV-017 |
| Input type | Image: scanned invoice |
| Current → candidate | Saved output from deepseek-v4-flash-vision-exp (before the redirect) → deepseek-v4.1-flash |
| Expected result | JSON with invoice number, date and total |
| Pass rule | All three fields match the label; no invented fields |
| Result | Fail: total read from the subtotal line |
| Usage and charge | Record the usage fields and final charge for this request |
| Decision | Keep invoice traffic off the candidate; add similar invoices to the fixture set and re-run |
| Fallback target | Another vision model that passed the same invoice set, or human review |
Move traffic only after the acceptance checks pass

Use a feature flag or routing configuration to select the candidate for a bounded workload. Keep a record of which requests used it. Start with internal or otherwise noncritical work; introduce customer traffic only after the application checks pass.
A practical sequence is:
- Confirm the request. Check the exact model ID, protocol, permissions and price source.
- Replay offline fixtures. Compare against your current model or stored acceptance criteria and diagnose failures while traffic is unaffected.
- Run a limited cohort. Select a small workload or tenant cohort whose errors can be contained. Monitor accepted results, latency and charges.
- Expand by task class. Increase use where the model passes. Keep harder or poorly measured tasks on the model that already passes them.
- Recheck after provider changes. A stable ID does not exempt the application from future regression tests.
Choose thresholds from your own service requirements. For instance, a team might require no critical tool failures, schema validity above its existing floor and p95 latency within its response budget. These are application gates, not claims about V4.1 Flash performance.
Rollback must name a destination that still serves the previous behavior, and it has to match the input type.
- Text-only tasks: on EvoLink,
deepseek-v4-flashanddeepseek-v4-proremain available, so a text cohort that fails on V4.1 Flash can return to them through configuration. - Tasks that depend on image evidence: V4 Flash and V4 Pro are text-only and cannot take these over. Fall back to another model that has passed the same visual evaluation, or stop and send the request to human review. An OCR-plus-text pipeline is a fallback only when you have confirmed that losing layout and pixel detail does not change the result. Never drop the image silently, or replace it with a placeholder, and count the response as a success.
- Vision Exp:
deepseek-v4-flash-vision-expis not a rollback target, because it already redirects to V4.1 Flash.
Compare cost per accepted result
For an evaluation cohort:
API cost per accepted task = total charged API cost / accepted task countInclude unsuccessful attempts and retries in total charged cost. If no task is accepted, the ratio is undefined; do not report zero cost per success. Track human review and tool-service costs separately, then include them if your decision concerns total operating cost.
A hypothetical comparison makes the distinction clear: 100 tasks costing 1.00 in total with 80 accepted results cost 0.0125 per accepted task. A second configuration costing 0.90 with only 60 accepted results costs 0.015 per accepted task. The lower cohort bill is more expensive per usable result. These are illustrative numbers, not EvoLink prices or test measurements.
Diagnose failures without changing several variables at once
| Symptom | First check | Useful next step |
|---|---|---|
| Request rejected before generation | Active key, endpoint and model ID | Use a minimal documented request; distinguish authentication from model availability |
| Text succeeds but images fail | Image field and selected protocol | Test one supported image before adding a batch or tools |
| First turn succeeds but agent stops | Tool result IDs, history and client parser | Reproduce a two-step task with deterministic test tools |
| Output is cut off | Output limit and finish reason | Adjust a bounded limit; avoid an unlimited retry loop |
| Bill changes despite similar rates | Reasoning, cache, output length and failed attempts | Compare final charged cost for the same accepted workload |
| "Rollback" produces the same behavior | Whether the ID redirects to the new model | For text tasks, return to an ID that still serves the previous model, such as deepseek-v4-flash on EvoLink; for image tasks, use another verified vision model |
Preserve a redacted request, response, time and request identifier for troubleshooting. Do not include API keys or customer-sensitive input in a public bug report. Exact error names and HTTP behavior should come from the response and current documentation, not a prediction based on the spelling of the model ID.
FAQ
Do I have to rename my existing DeepSeek requests on EvoLink?
deepseek-v4-flash and deepseek-v4-pro: both continue to serve V4 Flash and V4 Pro. deepseek-v4-flash-vision-exp still works but now redirects to V4.1 Flash, so update it to deepseek-v4.1-flash when you are ready and re-run your image checks.Which name belongs in an EvoLink V4.1 Flash configuration?
deepseek-v4.1-flash. The website path uses hyphens, and DeepSeek's direct API uses deepseek-flash. Keep endpoint, provider and identifier together; they are not interchangeable.When is the V4 Pro transition planned, and does it affect EvoLink?
deepseek-v4-pro on EvoLink, which continues to serve V4 Pro. If you call DeepSeek's API directly, recheck the announcement before the cutoff.Can I compare the old and new models side by side?
deepseek-v4-flash or deepseek-v4-pro and to deepseek-v4.1-flash. Vision Exp is different because its ID already redirects to V4.1 Flash, so compare against outputs you saved earlier. The same applies to the old names on DeepSeek's direct API.Does optional thinking mean thinking is disabled?
No. It means a non-thinking mode is available where supported. Check the setting your requests actually use, then log it with your evaluation results.
Will the migration reduce my bill?
That depends on the account rates, token mix, reasoning, cache reuse, retries and acceptance rate. Measure final charges for equivalent tasks. Do not treat direct-provider price cuts or listed rates as a guarantee about your invoice.
What happens to my Vision Exp image workloads on EvoLink?
deepseek-v4.1-flash so your configuration matches the model that serves the requests.What counts as a useful fallback after the migration?
deepseek-v4-flash and deepseek-v4-pro still serve V4 Flash and V4 Pro. For image tasks, those two models are text-only, so use another verified vision model or a human-review path. An ID that redirects to V4.1 Flash, such as deepseek-v4-flash-vision-exp, is not a rollback to older behavior.Sources and next step
Provider documentation was checked on September 10, 2026:
- DeepSeek release and alias changes
- DeepSeek model identifiers and pricing
- Thinking controls
- Context caching
- EvoLink DeepSeek Chat reference


