Skip to content
TutujinAPI

How to choose a model: sort tasks by difficulty, then test on your own data

Start from task difficulty — small, cheap models for classification, extraction and rewriting; mid-tier models for Q&A, summaries and writing; flagship or reasoning models for hard multi-step work. A tier table, an evaluation script and live price comparisons.

Choosing a model takes three steps: place the task in a difficulty tier, pick two to four candidates in that tier, then test them on 50 to 200 of your own real samples and take the cheapest one that meets the bar. Most business tasks do not need the most expensive model. For classification, extraction and rewriting, a small model often costs a few percent of a flagship's price — compare the live prices below.

Sort tasks by difficulty

TierTypical tasksWhat matters
LightIntent classification, sentiment, field extraction, format conversion, short rewritesShort inputs and outputs at high volume: unit price and speed
MidKnowledge-base Q&A, support replies, summaries, marketing copy, translationBalance quality and price; inputs are often long, so watch the input price
Flagship and reasoningMulti-step reasoning, complex analysis, synthesizing long documents, multi-step tool useQuality first; use for a small number of high-value requests

To read invoices, screenshots or product photos, pick a model with vision. Knowledge-base search also needs an embedding model and a rerank model — see Enterprise knowledge base and RAG.

Light-tier candidates

ModelVendorCheapest groupInput ¥/1MOutput ¥/1MPer request ¥
gpt-5.4-miniOpenAIStandard¥1.5¥9—
gpt-4o-miniOpenAIStandard¥0.3¥1.2—
doubao-seed-2-0-mini-260215ByteDance DoubaoChina Models¥0.28¥2.8—
Claude Haiku 5.5AnthropicClaude Plus¥0.4¥2—

Prices in CNY, cheapest group for each model; updated Nov 13, 2026, 6:08 PM.

Mid-tier candidates

ModelVendorCheapest groupInput ¥/1MOutput ¥/1MPer request ¥
deepseek-v4.1-flashDeepSeekChina Models¥2.8¥11.2—
qwen3.5-plusQwenChina Models¥1.12¥6.72—
gemini-3.8-flashGoogleStandard¥1.5¥7.5—
Claude Sonnet 5.5AnthropicClaude Lite¥3.2¥16—

Prices in CNY, cheapest group for each model; updated Nov 13, 2026, 6:08 PM.

Flagship and reasoning candidates

ModelVendorCheapest groupInput ¥/1MOutput ¥/1MPer request ¥
gpt-5.5OpenAIStandard¥10¥80—
Claude Opus 5.5AnthropicClaude Lite¥8¥40—
gemini-3.1-pro-previewGoogleStandard¥4¥24—
deepseek-v4-proDeepSeekChina Models¥16.8¥33.6—

Prices in CNY, cheapest group for each model; updated Nov 13, 2026, 6:08 PM.

The tiers follow how each vendor positions its models, and models within a tier still differ a lot. Your own evaluation has the final say.

Test on your own data

  1. Collect samples: take 50 to 200 real inputs and write the expected result for each, covering common and tricky cases.
  2. Fix the prompt: give every candidate the same system prompt and parameters so the comparison is fair.
  3. Run and record: note whether each answer is right, how long it took, and the tokens in usage.
  4. Do the math: among models that meet your accuracy bar, multiply average tokens by unit prices and pick the lowest cost per request.
  5. Keep a runner-up as a fallback for when the main model has problems.

This script sends the same samples to several candidates and reports accuracy, average latency and average tokens:

Python
import os
import time
from openai import OpenAI

client = OpenAI(base_url="https://www.tutujin.com/v1", api_key=os.environ["TUTUJIN_API_KEY"])

candidates = [
    "gpt-5.4-mini",
    "deepseek-v4.1-flash",
    "qwen3.5-plus",
]
samples = [
    {"text": "My parcel has been stuck for three days", "label": "shipping"},
    {"text": "Can I return this jacket?", "label": "returns"},
    # replace with your own 50 to 200 samples
]
system = "Classify the user message as one of: shipping, returns, product, other. Output the label only."

for model in candidates:
    correct, seconds, tokens_in, tokens_out = 0, 0.0, 0, 0
    for s in samples:
        t0 = time.time()
        resp = client.chat.completions.create(
            model=model,
            messages=[
                {"role": "system", "content": system},
                {"role": "user", "content": s["text"]},
            ],
        )
        seconds += time.time() - t0
        correct += resp.choices[0].message.content.strip() == s["label"]
        tokens_in += resp.usage.prompt_tokens
        tokens_out += resp.usage.completion_tokens
    n = len(samples)
    print(f"{model}: accuracy {correct / n:.0%}, avg {seconds / n:.2f}s, avg tokens {tokens_in / n:.0f} / {tokens_out / n:.0f}")

Same task, different tiers

A classification task with 300 input tokens and 10 output tokens per request, one million requests a month. On a light model:

Cost estimate · gpt-4o-mini (Standard)

Unit price
input ¥0.3 / output ¥1.2 (per 1M tokens)
Usage per request
300 input tokens, 10 output tokens
Requests
1,000,000
Cost per request
¥0.000102

Total about ¥102Prices in CNY, cheapest group for each model; updated Nov 13, 2026, 6:08 PM.

On a flagship:

Cost estimate · gpt-5.5 (Standard)

Unit price
input ¥10 / output ¥80 (per 1M tokens)
Usage per request
300 input tokens, 10 output tokens
Requests
1,000,000
Cost per request
¥0.0038

Total about ¥3,800Prices in CNY, cheapest group for each model; updated Nov 13, 2026, 6:08 PM.

If both score about the same in your evaluation, take the first. Reasoning models also add thinking tokens to the output, which widens the gap.

Combine models to save more

  • Tiered routing: let a small model judge the type or difficulty of a request, answer the easy ones directly and pass the hard ones to a bigger model.
  • Division of labor: in knowledge-base Q&A, use a small model to rewrite and classify questions and a mid-tier model to write the final answer.
  • Fallback: when the main model errors or times out, switch to another model in the same tier — see How to choose a group.

Other things to check

AspectHow to check
CapabilitiesVision, tool use, reasoning, web search — filter by capability in Models and pricing
EndpointsChat Completions, Claude Messages or native Gemini — see the API reference
GroupsWhich groups offer the model and at what price, shown on each model's page
LatencyMeasure it with the script above; reasoning models think first, so the first token usually takes longer

For how prices and billing work, see How LLM API pricing works.

FAQ

Do I need the newest, most powerful model?

No. Most business tasks are classification, extraction, rewriting and answering from documents, which small and mid-tier models handle well. Test a cheap model first and move up only if it falls short; that usually costs far less than starting with a flagship.

Chinese or international models?

Both work with the same key and the same code; only the model parameter changes. Put candidates from both into your evaluation and decide on quality, price and latency with your own data.

How much data do I need for an evaluation?

Usually 50 to 200 representative real samples are enough to see the differences. Cover the common cases and the tricky edge cases, and write down the expected result for each.

Do I have to change code to switch models?

With the OpenAI-compatible API you normally change only the model parameter. Vendors differ in how they handle parameters such as temperature, response_format and reasoning_effort, so test a new model with a little traffic first.