Model comparison · 2026-10-26
Nanbeige4.2 3B vs Ministral 3 3B: two small models
Compare Nanbeige4.2 3B and Ministral 3 3B on LLMTR: price, context window, image input, tool calling, JSON output and hosting.
Short answer: Nanbeige4.2 3B when hosting in Turkey matters
LLMTR is a gateway that gives access to language models from different providers through one OpenAI-compatible API. Nanbeige4.2 3B (llmtr/nanbeige4-2-3b) and Ministral 3 3B (mistral/ministral-3b-latest) are called on the /v1/chat/completions endpoint at https://llmtr.com/v1 with the same API key from your llmtr.com account. For short summaries and classification whose requests must be handled by a model hosted in Turkey, call Nanbeige4.2 3B on LLMTR with the llmtr/nanbeige4-2-3b id. For work that reads images or carries prompts longer than 32,768 tokens, and when you want a lower price for the same job, use Ministral 3 3B with the mistral/ministral-3b-latest id.
Nanbeige4.2 3B is an Apache 2.0 open-weight model from Nanbeige LLM Lab; according to its model card it has 3 billion parameters excluding embeddings. LLMTR hosts Nanbeige4.2 3B in Turkey, and requests are never forwarded to a third-party provider. The model card describes a longer context; on LLMTR the row's window is 32,768 tokens. Ministral 3 3B is the 3B member of Mistral AI's Ministral 3 family; Mistral's model page presents it as an Apache 2.0 model released on 2 December 2025 that understands text and images.
Nanbeige4.2 3B or Ministral 3 3B?
Three questions decide it: does your work need Nanbeige4.2 3B's hosting in Turkey, does the input contain images, and how long is the prompt? The price gap is also large, and it favours Ministral 3 3B. We make no claim about quality; compare the two models on your own examples.
The table shows both rows with the values in the LLMTR catalog as of 26 October 2026; prices are per 1M tokens.
| Property | Nanbeige4.2 3B | Ministral 3 3B |
|---|---|---|
| Model id | llmtr/nanbeige4-2-3b | mistral/ministral-3b-latest |
| Price (input / output) | $1.00 / $3.00 | $0.10 / $0.10 |
| Cache read | $0.25; only tokens reported as cached_tokens | no cache price in the catalog |
| Context window | 32,768 tokens, shared by the prompt and the answer | 128,000 tokens (LLMTR card) |
| Input | text only | text and images |
| Tool calling | yes; tool_choice auto only, thinking is turned on for that request | yes |
| JSON output (response_format) | no, the request returns 400 | not stated on the LLMTR card |
| Thinking | off by default; on with :think or "reasoning": true | no thinking control on the LLMTR card |
| Response time | slow; streaming and a client timeout of at least 300 seconds | no separate advice on the card |
| Hosting | Turkey; requests are never forwarded to a third-party provider | does not carry LLMTR's Turkey hosting mark |
| Licence | Apache 2.0 | Apache 2.0 |
What does the same classification request cost on each model?
Take a fixed 1,500-token system message, a 500-token customer message and a 200-token answer; the prompt is 2,000 tokens. On Nanbeige4.2 3B with no cache hit this request costs $0.0026. If the 1,500 tokens of the system message are reported as cached_tokens, the same request costs $0.001475, because that part is billed at the $0.25 rate. A cache hit is not guaranteed: a prefix does not hit on its first send and may hit on later repeats. Ministral 3 3B has no cache price in the catalog, so the whole prompt is billed at the input price and the request costs $0.00022. Over 1,000 requests the total is $2.60 on Nanbeige4.2 3B, or $1.475 with the cache, and $0.22 on Ministral 3 3B.
The Python example below sends the same customer message to both ids and prints the answer, the usage values and the cost at catalog prices. Because Nanbeige4.2 3B generates answers slowly, the client timeout is 300 seconds. Nanbeige4.2 3B is trained mostly on English and Chinese, so the system message asks for a Turkish answer. Token counts differ from model to model; compare output quality on your own examples.
OpenAI Python SDK example that sends the same Turkish customer message to Nanbeige4.2 3B and Ministral 3 3B through https://llmtr.com/v1/chat/completions and prints the answer, token usage and cost.
import os
from openai import OpenAI
# Nanbeige4.2 3B answers slowly: keep the client timeout at 300 seconds or more.
client = OpenAI(base_url="https://llmtr.com/v1", api_key=os.environ["LLMTR_API_KEY"], timeout=300.0)
# Per 1M tokens on 26 October 2026: (input, cache read, output); None = no cache price.
PRICES = {
"llmtr/nanbeige4-2-3b": (1.00, 0.25, 3.00),
"mistral/ministral-3b-latest": (0.10, None, 0.10),
}
messages = [
{"role": "system", "content": "Her zaman Türkçe ve tek kelimeyle cevap ver: olumlu, olumsuz ya da nötr."},
{"role": "user", "content": "Kargo iki gün gecikti ama ürün sağlam geldi."},
]
for model, (inp, cache, out) in PRICES.items():
response = client.chat.completions.create(model=model, messages=messages, max_tokens=16)
usage = response.usage
details = usage.prompt_tokens_details
cached = (details.cached_tokens or 0) if details and cache is not None else 0
cost = ((usage.prompt_tokens - cached) * inp + cached * (cache or 0) + usage.completion_tokens * out) / 1_000_000
print(model, response.choices[0].message.content, usage.prompt_tokens, cached, usage.completion_tokens, f"${cost:.6f}")
Tool calling, JSON and thinking: what changes between the two?
On Nanbeige4.2 3B response_format cannot be used for structured output; a request asking for a JSON object or a JSON schema returns 400 invalid_request. If you need a result with fixed fields, define a function and use tool calling: the function's parameters schema sets the fields the model fills in. When you send tools, thinking is switched on for that request and the thinking tokens are billed as output. A request that turns thinking off with :fast, "reasoning": false or chat_template_kwargs.enable_thinking: false while sending tools returns 400. tool_choice accepts only auto; required or a function chosen by name returns 400, and to switch tools off you remove the tools field from the request.
The LLMTR card of Ministral 3 3B lists tool calling and image input; it lists no thinking control and no JSON output capability, so do not build either parameter into a flow before trying it on your own examples. On Nanbeige4.2 3B a request with an image, audio or file part returns 400 unsupported_input. Response time differs as well: Nanbeige4.2 3B generates answers slowly. Use "stream": true wherever a user watches the answer; without max_tokens the answer stops at 4,096 tokens and finish_reason is length.
Which one when?
The choices below follow from the differences in price, context window, input type and hosting; compare output quality on your own examples.
- Short summaries and classification whose requests must be handled by a model hosted in Turkey: Nanbeige4.2 3B on LLMTR, llmtr/nanbeige4-2-3b; requests are never forwarded to a third-party provider.
- A Nanbeige4.2 3B flow that repeats the same long system message on every request: keep the fixed content at the start of the message list; the part reported as cached_tokens is billed at $0.25 per 1M tokens.
- High-volume work where price decides: Ministral 3 3B on LLMTR, mistral/ministral-3b-latest, at $0.10 input and $0.10 output per 1M tokens.
- A small model that reads images: Ministral 3 3B; Nanbeige4.2 3B accepts text only.
- Prompts longer than 32,768 tokens: Ministral 3 3B; its LLMTR card gives a 128,000-token context window.
Using both models in one flow
Both ids accept the same message format on the same endpoint, so you can split requests by job by changing only the model field. Send Nanbeige4.2 3B no response_format and no images, leave tool_choice at auto and set the client timeout to at least 300 seconds. Send Ministral 3 3B no thinking setting; its LLMTR card lists no thinking control.
Both models draw on the same account balance, which you top up under Dashboard > Billing. Before you switch an id, run the same examples on both models and put the answers and the usage values side by side.
Comparing Nanbeige4.2 3B and Ministral 3 3B on the same request
Send the same message to both models with one LLMTR key, then compare the answer, token usage, cost and your hosting needs.
- Key. Create an API key on llmtr.com and top up your balance under Dashboard > Billing.
- Same request. Send your own examples with both model ids to the https://llmtr.com/v1/chat/completions endpoint; set the client timeout to at least 300 seconds.
- Choice. Compare the answers, token counts, cost and your hosting needs, then choose the model id.
Frequently asked questions
Can Nanbeige4.2 3B return JSON through response_format?
No. A request asking for a JSON object or a JSON schema returns 400 invalid_request; { "type": "text" } is accepted. For a result with fixed fields, define a function and use tool calling; when you send tools, thinking is switched on for that request.
Which one has the lower price?
As of 26 October 2026 the LLMTR catalog lists Ministral 3 3B at $0.10 input and $0.10 output per 1M tokens. Nanbeige4.2 3B is $1.00 input, $3.00 output and $0.25 cache read. A request with a 2,000-token prompt and a 200-token answer costs $0.00022 on Ministral 3 3B and $0.0026 on Nanbeige4.2 3B without a cache hit.
Are both models called with the same API key?
Yes. The API key from your llmtr.com account and the https://llmtr.com/v1 address are the same for both models; only the model field changes. For Nanbeige4.2 3B, set the client timeout to at least 300 seconds.