The clearest difference in our Qwen vs DeepSeek test was a missing detail in a summary. DeepSeek preserved all the required information in three out of three runs; Qwen did so in one. Both passed our JSON extraction, order calculation and small Python repair in all three runs. These results help you inspect the answers, but do not establish an overall winner for either model family.
We tested the official consumer chats on four short English text tasks, with three fresh conversations per task in each app. This page compares those observed experiences. API endpoints, downloadable models and coding agents require different comparisons.
Tested: September 22, 2026 (UTC). Editorial update: October 13, 2026. By China AI Chat Team.
Research, collection and review were AI-assisted; see our testing methodology. ChinaAI is independent of both providers.
On this page: Results · Apps and settings · Summary test · JSON test · Calculation · Coding · Which to try · Method and records
Results at a glance
A full pass means the answer met all the requirements set before testing, including any requested format. The figures below count successful runs out of three for the same prompt; they are not general accuracy percentages.
| Task | Qwen | DeepSeek | What the checks found |
|---|---|---|---|
| Shipment facts as JSON | 3/3 full passes | 3/3 full passes | Correct seven fields and types, valid JSON, and no invented tracking URL. |
| Three-bullet summary | 1/3 full passes | 3/3 full passes | Qwen omitted what required advance booking in runs 1 and 3. Both kept the dates, quantities and closure uncertainty. |
| Order with cancellation and discount | 3/3 full passes* | 3/3 full passes | Correct confirmed subtotal of USD 103.30 and final amount of USD 99.37. |
| Repair a Python range function | 3/3 full passes | 3/3 full passes | Every returned function passed the same 12 checks, including duplicates, negative numbers and unchanged input. |
*Qwen automatically offered two alternatives in arithmetic run 2. We retained and checked both without choosing a preference; both passed. That was one request. The complete collection contains 24 submitted requests and 25 displayed answer variants.
Only the summary separated the apps on these checks. Speed, maximum context, web search, translation and real-codebase performance were not tested.
Which Qwen and DeepSeek did we compare?
The following settings were recorded in signed-in sessions on September 22, 2026. A consumer interface can route requests internally, so a label in the chat does not prove which API model or backend component produced every part of an answer. Check the visible model, mode and tools in your account before repeating the comparison.
| Setting | Qwen Chat | DeepSeek Chat |
|---|---|---|
| Official service | chat.qwen.ai | chat.deepseek.com |
| Visible model label | Qwen3.7-Plus | Serving-model version not exposed in the test interface |
| Selected mode | Fast | DeepThink off |
| Tools / search | Tools switch off | Search off |
| Account plan | Not displayed in the chat view | Not displayed in the chat view |
| Inputs and conversation | Text only; fresh chat for each request | Text only; fresh chat for each request |
Every prompt also asked the app not to search. We confirmed the visible controls at the start and between rounds. These settings support a comparison of the available consumer modes; they do not make hidden computation, output budgets or system instructions equal. We did not call either paid API.
To examine named releases or integration options, use the Qwen model guide, DeepSeek model guide and their Qwen API and DeepSeek API guides.
Summarization: a small omission changed the result
The fictional arts-hub update required exactly three bullets of no more than 30 words each. The answer had to keep nine factual requirements: the date, opening hours, daily schedule, two equipment quantities, print-room closure, its reason, its uncertain reopening and advance booking for worktables.
Read or copy the exact prompt
Use only the fictional update below. Do not search the web. Summarize it in exactly three bullets, each beginning with "- " and containing at most 30 words. Use one bullet for reopening, one for new facilities, and one for the closure and booking rules. Preserve every stated date, time and quantity, the reason for the closure, the uncertainty about reopening the closed room, and the advance-booking requirement. Add no facts or introductory text. Meadow Arts Hub will reopen on 12 November 2026, from 10:00 to 18:00 daily. Phase one provides 18 worktables and 6 loaner laptops. The print room remains closed while ventilation is checked; no reopening date has been confirmed for that room. Visitors must book worktables in advance.
What changed between runs?
Qwen’s first answer ended with:
– Print room closed for ventilation checks with no confirmed reopening; advance booking required.
“Advance booking required” preserves the obligation but does not identify what must be booked. The source specifies worktables; the third bullet names only the print room. We counted this as incomplete coverage of the booking rule, not as a claim that the print room could be booked. Qwen made the same omission in run 3.
In run 2, Qwen included the missing association:
– Print room stays closed for ventilation checks with no confirmed reopening date; advance booking is required for worktables.
DeepSeek kept the worktable requirement in all three runs. Its first answer ended with:
– Print room stays closed for ventilation check, no reopening date, advance worktable booking required.
All six summaries met the three-bullet and word-limit requirements. Qwen’s two incomplete answers passed eight of the nine factual checks; its second answer and all three DeepSeek answers passed nine. We accepted concise wording such as “no confirmed reopening” as preserving uncertainty rather than requiring a particular phrase.


Use this check on your own work: compare each requirement with the final summary. A fluent sentence can keep the right date and number while dropping who must act or what the rule applies to. Check obligations, exclusions and uncertain dates separately.
JSON extraction: both preserved the missing value
We asked for seven typed fields from a fictional shipment note, with no Markdown or extra commentary. The tracking URL was deliberately absent.
Read or copy the exact prompt
Use only the fictional shipment note below. Do not search the web. Return one JSON object with exactly these keys: shipment_id, destination, dispatch_date, units, mass_kg, fragile, tracking_url. Use strings for shipment_id/destination/dispatch_date, an integer for units, a number for mass_kg, a boolean for fragile, and null for any missing value. Format dispatch_date as YYYY-MM-DD. No Markdown or additional text. Shipment PK-7308 is going to Dover. Its dispatch date is 6 November 2026. The shipment contains 18 units and has a total mass of 7.25 kg. The handling label says FRAGILE. No tracking URL is provided in this note.
All three runs in both apps returned valid JSON with the exact requested keys, correct values and types, and null for the tracking URL. Spacing and line breaks varied; those were not errors. This is the expected object, shown here with formatting for readability:
{
"shipment_id": "PK-7308",
"destination": "Dover",
"dispatch_date": "2026-11-06",
"units": 18,
"mass_kg": 7.25,
"fragile": true,
"tracking_url": null
}
Our check rejected extra or duplicate keys, quoted numbers in place of numeric values, and Markdown fences. It checked field accuracy separately from format. No answer failed those checks here.
Both handled this explicit extraction. For software use, validate the structure and types and define missing-value rules; this one task cannot guarantee compliance with other schemas.
Calculation: both applied the cancellation and discount correctly
The task was more than adding every row. It required excluding a cancelled item, applying a 10% discount only if confirmed items reached USD 100.00, and adding delivery after the discount.
Read or copy the exact prompt
Use only this fictional supply order. Do not search the web. Include only rows marked Confirmed when calculating the amount due. Item | Quantity | Unit price (USD) | Status Foam boards | 9 | 4.20 | Confirmed Paint sets | 6 | 8.25 | Confirmed Brush packs | 4 | 3.80 | Cancelled Shipping sleeves | 10 | 1.60 | Confirmed If the Confirmed-items subtotal is at least USD 100.00, subtract a discount of 10% of that subtotal; otherwise subtract no discount. Then add one delivery charge of USD 6.40. Delivery does not count toward the discount threshold and is not discounted. There are no taxes or other charges. Round monetary results to two decimal places. Show each included line total, the Confirmed-items subtotal, whether the discount applies, the discount amount, delivery and the final amount due in USD. Identify the excluded row and its reason for exclusion.
| Step | Independent reference |
|---|---|
| Foam boards | 9 × USD 4.20 = USD 37.80 |
| Paint sets | 6 × USD 8.25 = USD 49.50 |
| Shipping sleeves | 10 × USD 1.60 = USD 16.00 |
| Excluded item | Brush packs: Cancelled; its USD 15.20 does not enter the subtotal |
| Confirmed subtotal | USD 103.30 |
| 10% discount | Applies because USD 103.30 ≥ USD 100.00; subtract USD 10.33 |
| Delivery | Add USD 6.40 after the discount |
| Amount due | USD 103.30 − USD 10.33 + USD 6.40 = USD 99.37 |
Both apps showed the requested included line totals, excluded the cancelled row, applied the discount and reached USD 99.37 in all three runs. Qwen’s two unsolicited alternatives in run 2 also met the same requirements. We checked the intermediate amounts as well as the final number.
Use this check: first mark which rows belong in the calculation, then check the threshold and the order of operations. This example covers only the discount-eligible branch. It does not test a subtotal just below the threshold, different rounding rules or larger spreadsheets.
Coding: both repaired the function and passed 12 checks
The supplied Python function grouped consecutive integers into inclusive ranges. It had two defects: duplicate values could split a range, and it never appended the final range. The contract also required empty-list support, negative integers and no mutation of the input.
Read or copy the exact prompt
Repair the pure Python function below. Do not search the web. It must accept a list of integers, ignore duplicates, and return a list of inclusive (start, end) tuples for consecutive ranges in ascending order. It must return [] for an empty list and must not mutate the input. Negative integers are valid. You may assume the input contains only integers.
For example, contiguous_ranges([4, 2, 3, 3, 8]) must return [(2, 4), (8, 8)].
def contiguous_ranges(numbers):
ordered = sorted(numbers)
if not ordered:
return []
result = []
start = end = ordered[0]
for number in ordered[1:]:
if number == end + 1:
end = number
else:
result.append((start, end))
start = end = number
return result
Return only the corrected function in one Python code block. Do not add imports, tests, explanations or top-level executable code.
All six returned functions fixed those defects and passed the same 12 predeclared checks under Python 3.12.14. All met the requested one-code-block format. We inspected each function, then ran it without repairing its code. Here is the function from DeepSeek’s first response, with its code unchanged:
def contiguous_ranges(numbers):
ordered = sorted(set(numbers))
if not ordered:
return []
result = []
start = end = ordered[0]
for number in ordered[1:]:
if number == end + 1:
end = number
else:
result.append((start, end))
start = end = number
result.append((start, end))
return result
| Example check | Expected result |
|---|---|
Empty input: [] | [] |
One value: [5] | [(5, 5)] |
Duplicates and a gap: [4, 2, 3, 3, 8] | [(2, 4), (8, 8)] |
Crossing zero: [1, -1, 0, 1] | [(-1, 1)] |
Final range: [1, 2, 5, 6] | [(1, 2), (5, 6)] |
| Input after the call | The original list remains unchanged |
The remaining cases covered unsorted consecutive values, all duplicates, several ranges, negative ranges, negative singletons and widely separated integers. We required a list of integer tuples, not merely a plausible-looking answer. Before collecting responses, we confirmed that a correct reference passed the harness and the supplied broken function failed it.
Which is better for coding? This function did not distinguish them. It is a small repair, not a repository task, an agent benchmark or a production-security review. If you want a tool that works on project files, our separate Qwen Code guide explains that coding-agent workflow and its limitations. A chat answer does not test that tool.
Which should you try for your task?
| Your task | What this comparison supports | Next action |
|---|---|---|
| A short summary with mandatory details | DeepSeek preserved all nine requirements in 3/3 runs; Qwen did so in 1/3. This is the clearest observed difference. | Try the same factual checklist with your own material and verify every obligation and exception. |
| Simple structured extraction or a small calculation | Both met the requirements in every run of these prompts. | Start with either official chat and validate the output against the source or an independent calculation. |
| A small Python function repair | Both passed the 12 checks in all three runs. | Write expected outputs and edge cases before accepting generated code. |
| PDF reading or image work | PDF reading and image work were not tested in this comparison. The linked guides explain those workflows and what to verify in the output. | See our guides to Qwen PDF reading, image generation and image editing. |
| An application integration or local model | Consumer answers do not predict a named API or local model configuration. | Choose an exact model, provider and deployment route in the model/API guides. |
If your main concern is cost, keep the products separate. This test does not compare subscription entitlements, daily allowances or token prices. See Qwen pricing and access and DeepSeek pricing and calculator for those questions.
Try a fair comparison yourself
Qwen consumer-use terms: its Service Agreement, effective September 10, 2026, limits the service to private, non-commercial use. Use the fictional tasks here for personal evaluation. For commercial work, review the terms of the exact API, hosted service or model you intend to use.
- Choose a small task whose correct answer you can check. Use material you are authorised to send to both services.
- Write the requirements before asking either app: facts, missing values, length, output format and edge cases.
- Use the same prompt in fresh chats and record the visible model, mode and tools.
- Keep the first answers, including failures. If you repeat the task, keep every result rather than only the best one.
- Compare the requirement checklist before judging fluency or layout. Treat follow-up improvements as a separate workflow.
Method, full answers and limits
We fixed the four prompts, expected answers, scoring criteria, code checks and collection order before either app received a prompt. The offline code-check baseline was recorded at 00:13:47 UTC on September 22. The task order varied between rounds, and we alternated which app received each pair first. This was a planned sequence, not randomised or blinded testing.
Each request began in a fresh conversation. We kept all first outputs without regeneration, corrections or passing one app’s response to the other. JSON and code received mechanical checks; AI reviewers separately checked summary coverage and calculation steps. No human testing panel or external expert endorsement is claimed.
Unplanned interface event: Qwen supplied two alternatives for arithmetic run 2. We captured both without selecting a preference. We then adopted and disclosed a conservative request-level rule: both alternatives must pass for that run to count as a full pass. Both did. This aggregation rule was added after the interface event; the underlying answer criteria were unchanged.
Most answer files preserve the text supplied by the app’s Copy control. The two preference-screen alternatives preserve visible answer text instead, with their table cells separated by tabs. They were not rewritten. The records identify this exception and include all prompts, answer variants, checks and hashes.
Read all prompts and 25 answers (.txt)
Download the full test records (.zip) — includes the frozen criteria, individual answers, evaluations and Python checker. No account identifiers, private chat links or API credentials are included.
Four prompts are a small, deliberately checkable sample. Three repeats of one prompt are not three independent tasks and cannot establish a stable reliability rate. The apps may change; account plans, backend versions and generation settings were not fully exposed. We did not test Thinking/DeepThink-on modes, browsing, multilingual tasks, long documents, image understanding, broader code quality or security. Automation and observation delays also make these records unsuitable for speed comparisons.
The official chat interfaces linked in the settings table are the primary sources for the observed controls; the downloadable records support the task results. We will revisit this page when those controls materially change, the comparison scope expands, or a reproducible correction affects a finding. Send a correction with the affected task and evidence.
For broader context, see our Qwen overview, DeepSeek overview and separate DeepSeek–ChatGPT comparison.
Review and update history
An earlier version was reviewed by Ibrahim Ahmed and Ibrahim Abd Elhady. Previous editorial revision: September 26, 2026. See our review policy.
October 13, 2026 editorial update: corrected the descriptions of the linked PDF, image and coding guides, updated the cross-reference to the DeepSeek–ChatGPT comparison, checked Qwen’s current consumer-use terms, and rechecked the original answers, calculations and code against the retained records. The September 22 test settings, results and screenshots remain the evidence for this comparison. No new app trials were conducted for this update; the earlier-version review credit above applies to that earlier version.
