Comparison · Consumer web apps
DeepSeek vs ChatGPT: four practical tests
Both handled our data, arithmetic and small coding tasks correctly. A strict writing brief exposed different mistakes. Here are the prompts, first responses and limits of the comparison.
By China AI Chat Team · Tested 18 September 2026 · Independent comparison
Which should you use?
For these text tasks, neither was an across-the-board winner. DeepSeek and ChatGPT both produced the correct structured data, booking calculation and function fix. DeepSeek missed the writing word count; ChatGPT met it but added advice beyond the supplied facts.
For text and small code questions like these, try either assistant with a prompt whose answer you can check. If image creation or data analysis is central to your work, inspect the current ChatGPT Free-plan tools and limits. Those tools were not tested here, so this is a workflow consideration, not a finding that one model is more intelligent.
Results at a glance
| Task | DeepSeek | ChatGPT |
|---|---|---|
| Strict customer notice | Facts retained; 24 words, below the minimum | 45 words; added unrequested action guidance |
| JSON extraction | Correct fields and null for unknown date | Correct fields and null for unknown date |
| Booking arithmetic | Correct counts and both checks | Correct counts and both checks |
| Python function repair | 8/8 local cases passed; input unchanged | 8/8 local cases passed; input unchanged |
The writing result shows why a fluent answer still needs checking against the brief. Word counts are easy to verify; additions to the source require reading closely.
Exactly what we tested
| Condition | DeepSeek | ChatGPT |
|---|---|---|
| Product | Official DeepSeek web chat | Official ChatGPT web chat |
| Account | Signed in; no purchase or API top-up for this test | Free plan visible in the account menu |
| Mode | Ordinary chat; DeepThink not activated | Ordinary response; Think not activated |
| Search and tools | Search explicitly switched off | No search or tools requested or observed |
| Conversation context | New conversation for each prompt | Separate temporary conversation for each prompt, with Unpersonalized selected |
| Attempts | One response per task | One response per task |
We chose the four prompts and their requirements before submitting them. Each service received the same text, in English, without attachments. We did not regenerate answers or offer corrective follow-ups.
Model identity: neither test interface exposed a precise serving-model version in the chat header. We therefore label the results by product and mode. OpenAI’s Free Tier FAQ, checked September 22, 2026, names GPT-5.6 Luna, but that documentation is not a per-response model identifier. Likewise, a model announced on DeepSeek’s website does not by itself identify the backend that served this chat.
1. Writing to a strict brief
DeepSeek returned 24 words, below the requested 45–60, while retaining the supplied facts. ChatGPT’s copied notice had 45 words and three sentences, but added that customers need not take action. That extra guidance was not in the source facts. We count copied answer text, excluding interface titles and suggested follow-ups.
Exact prompt
Write a customer notice using only these facts: a fictional online notebook store will pause new orders on 12 October for inventory checks and reopen on 14 October. Existing orders are unaffected. Output exactly three sentences, 45 to 60 words in total, with no heading or bullet points. Include both dates and say existing orders are unaffected. Do not add an apology, discounts, delivery estimates, or any other facts. Do not use web search or tools.DeepSeek’s first response
Our online notebook store will pause new orders on 12 October for inventory checks. We will reopen on 14 October. Existing orders are unaffected.ChatGPT’s first response
Our online notebook store will pause new orders on 12 October while we conduct inventory checks. New orders will reopen on 14 October once the inventory checks are complete. Existing orders are unaffected, and customers with existing orders do not need to take any action.
2. Extracting facts without inventing a date
Both returned valid JSON with exactly the four requested keys, a numeric price and warranty, and null for the unannounced release date. Neither converted the retailer’s expectation into a confirmed release.
Exact prompt
Using only the text below, output one valid JSON object with exactly these keys: product, price_usd, release_date, warranty_months. Use null for any value not stated. No Markdown or commentary. Text: The fictional Luma desk lamp costs $39. A retailer expects it to arrive in November, but the manufacturer has not announced a release date. Its warranty lasts 18 months. Do not use web search or tools.DeepSeek’s first response
{"product":"Luma desk lamp","price_usd":39,"release_date":null,"warranty_months":18}ChatGPT’s first response
{"product":"Luma desk lamp","price_usd":39,"release_date":null,"warranty_months":18}3. Checking arithmetic
Both answered 23 two-seat bookings and 14 five-seat bookings, and verified 37 bookings and 116 seats. Both stayed within the 80-word limit. Whitespace-based counts including mathematical tokens were 74 for DeepSeek and 36 for ChatGPT.
Exact prompt
A workshop has 37 bookings. Each booking reserves either 2 or 5 seats. The total is 116 seats. How many bookings of each size are there? Give the two counts and verify both the booking total and seat total in no more than 80 words. Do not use web search, a calculator, code execution, or any tools.DeepSeek’s first response
Let x = bookings of 2 seats, y = bookings of 5 seats.
x + y = 37
2x + 5y = 116
Subtract 2(x + y) = 74 from 2x + 5y = 116:
3y = 42, so y = 14.
Then x = 23.
Answer: 23 bookings of 2 seats, 14 bookings of 5 seats.
Check: 23 + 14 = 37 bookings. Seats: 23×2 + 14×5 = 46 + 70 = 116.ChatGPT’s first response
Let x be 2-seat bookings and y be 5-seat bookings.
x+y=37
2x+5y=116
Subtracting 2(x+y)=74: 3y=42, so y=14. Thus x=23.
Answer: 23 bookings of 2 seats and 14 bookings of 5 seats.
Verify: 23+14=37 bookings; 23(2)+14(5)=46+70=116 seats.4. Fixing a Python function
Both removed duplicates, avoided mutating the input and handled fewer than two distinct values. We ran the exact returned functions locally against eight cases. Both passed all eight expected-result checks and all eight input-preservation checks. This is a small function test, not evidence about building or maintaining large applications.
Exact prompt
Fix this Python function so it returns the second-largest DISTINCT integer, without modifying the input list, and returns None if fewer than two distinct values exist. Return only the complete function in a Python code block. Do not use web search or tools.
def second_largest(values):
values.sort()
return values[-2]DeepSeek’s first response
def second_largest(values):
unique = sorted(set(values), reverse=True)
return unique[1] if len(unique) >= 2 else NoneChatGPT’s first response
def second_largest(values):
distinct = set(values)
if len(distinct) < 2:
return None
return sorted(distinct)[-2]For developers: inspect the eight coding test cases
We tested an empty list, one value, repeated identical values, mixed duplicates, negative numbers, zero with a negative value, an unsorted three-value list and a two-value list. The expected outputs were respectively None, None, None, 2, −3, −1, 5 and 2.
cases = [([], None), ([7], None), ([7, 7], None),
([3, 1, 3, 2], 2), ([-5, -1, -3], -3),
([0, -1, 0], -1), ([8, 2, 5], 5), ([2, 8], 2)]
for values, expected in cases:
sample = values.copy()
assert second_largest(sample) == expected
assert sample == valuesChoose by workflow, access and cost
For everyday text and small code questions
Both are worth trying on representative work. Our results do not justify paying for a different tool merely to solve tasks this small. Give either assistant explicit constraints and verify the output, especially when it introduces information you did not supply.
For images, files and data tools
OpenAI documents web search, file uploads, data analysis and image creation on the Free tier, with separate tool limits. We did not test those capabilities in this comparison. Check the current Free-plan documentation and the controls offered in your account. For a Chinese-model image workflow we have actually tried, see our Qwen image-editing test.
For API development or local models
Use a separate evaluation with fixed model IDs, parameters, token budgets and your own application cases. A web-chat subscription and an API balance are different purchases. Our DeepSeek API guide, model reference and pricing page cover that route; the consumer-chat results above should not be treated as API benchmarks.
For sensitive work
Assess the terms and data controls of the actual service you intend to use. Hosting an open-weight model yourself is a different arrangement from sending a prompt to a provider’s consumer website. We used fictional test material and did not audit either provider’s privacy or security practices.
What this comparison cannot establish
Four prompts, one attempt each, on existing accounts are a small editorial check. We did not measure response speed, uptime, long-document recall, research citation quality, visual understanding, voice, advanced reasoning, safety or paid-plan performance. Different prompts, dates, account conditions and backend updates can produce different results.
There is no combined score because these tasks are not equally difficult and this sample is too small for a broad ranking. Use the disclosed prompts as a starting point, then test several examples of your own work.
Primary evidence: our official web-chat sessions and local checks of the returned Python functions, 18 September 2026. Product references: DeepSeek and OpenAI Free Tier FAQ. How we test · Report a correction.
All comparisons · DeepSeek guide · Open official chat services
