Model comparison · 2026-10-26

Turkish text classification: Nanbeige4.2 3B or Leyla?

Compare the Nanbeige4.2 3B chat model and the Leyla decision model for classifying Turkish text: request shape, price, context and probabilities.

Diagram: two boxes under https://llmtr.com/v1, llmtr/nanbeige4-2-3b and llmtr/leyla.

Short answer: Leyla for the label, Nanbeige4.2 3B for the label and text

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) is called on the /v1/chat/completions endpoint at https://llmtr.com/v1, and Leyla (llmtr/leyla) on the /v1/systemone endpoint, with the same API key from your llmtr.com account. To sort a Turkish text into one of the labels you define, to get a probability for a yes/no question or to place the text on a scale, use Leyla on LLMTR with the llmtr/leyla id. When you also need a short reason, a summary or a draft reply next to the label, call Nanbeige4.2 3B with the llmtr/nanbeige4-2-3b id.

Both models are hosted in Turkey on LLMTR. Leyla's card says your request does not leave Turkey; on Nanbeige4.2 3B requests are never forwarded to a third-party provider. Leyla is a decision model: it evaluates the questions you define against the text you supply and generates no free text. According to its card it supports more than 100 languages including Turkish. Nanbeige4.2 3B is an Apache 2.0 open-weight chat model from Nanbeige LLM Lab; according to its model card it has 3 billion parameters excluding embeddings.

Nanbeige4.2 3B or Leyla for Turkish text classification?

The difference is the request shape. To Leyla you send a state (the text) and questions keyed by names you choose; each question comes back as noul (a yes-probability), choice (a choice with a probability distribution and a confidence) or score (a position on ordered levels). To Nanbeige4.2 3B you send a chat message and get the label back as text, or, if you need fixed fields, as the arguments of a tool call. We make no claim about quality; do not put either model in production before measuring it on your own labelled examples.

The table shows both rows with the values in the LLMTR catalog and documentation as of 26 October 2026; prices are per 1M tokens.

Two models hosted in Turkey on LLMTR, as of 26 October 2026
PropertyNanbeige4.2 3BLeyla
Model idllmtr/nanbeige4-2-3bllmtr/leyla
Endpoint/v1/chat/completions/v1/systemone
Outputfree-form text or a tool calla choice, a score or a yes-probability; no free text
Price (input / output)$1.00 / $3.00$0.03 / $0
Context32,768 tokens, shared by the prompt and the answer1,024 tokens; longer text is cut, no error is returned
How the text is countedonce per requestseparately for each question
Questions per requestnot applicable (chat request)at most 64
Streamingyes; advised because answers are slowno, the response comes back in one piece
Turkishtrained mostly on English and Chinese; ask for Turkish in the system messagemore than 100 languages including Turkish
HostingTurkeyTurkey

What does classifying 1,000 support messages cost?

Here is an estimate built on an assumption: each support message takes 400 tokens on Leyla with its question and options, and a 400-token prompt with the system message on Nanbeige4.2 3B. On Leyla, with a single choice question, 1,000 messages are 400,000 input tokens and cost $0.012; the output price is $0. If you add a second question about the same text, Leyla counts the text once per question and the cost becomes $0.024, so send only the questions you will use. On Nanbeige4.2 3B, 1,000 messages with a 5-token label cost $0.415, and $0.52 if the label and a one-sentence reason take 40 tokens in all.

The Python example below sends the same message to both models. Leyla gets a choice question and a noul question; if the highest probability is below 0.6, the result goes to a person. Nanbeige4.2 3B gets a system message telling it to write the label and a one-sentence reason in Turkish; the client timeout is 300 seconds. The token counts are examples; measure them with your own messages.

Python example that sends the same Turkish support message to Leyla through https://llmtr.com/v1/systemone and to Nanbeige4.2 3B through https://llmtr.com/v1/chat/completions.

import os

import requests
from openai import OpenAI

message = "Kartımdan iki kez çekim yapılmış, iadesini istiyorum."

# Leyla: a decision with probabilities on /v1/systemone (no free text, no streaming).
leyla = requests.post(
    "https://llmtr.com/v1/systemone",
    headers={"Authorization": "Bearer " + os.environ["LLMTR_API_KEY"]},
    json={
        "model": "llmtr/leyla",
        "state": message,
        "questions": {
            "departman": {
                "type": "choice",
                "instructions": "Which team should handle this request?",
                "criteria": {"faturalama": "ödeme, fatura, iade", "teknik": "hata, kesinti, entegrasyon", "satis": "fiyat, hesap açma"},
            },
            "iade_talebi": {"type": "noul", "instructions": "Does the customer ask for a refund?"},
        },
    },
    timeout=60,
).json()
team = leyla["answers"]["departman"]
label = team["choice"] if team["probabilities"][team["choice"]] >= 0.6 else "insana_yonlendir"
print("llmtr/leyla", label, team["probabilities"], leyla["answers"]["iade_talebi"]["noul"], leyla["usage"])

# Nanbeige4.2 3B: the label plus a one-sentence reason, as text. It answers slowly.
client = OpenAI(base_url="https://llmtr.com/v1", api_key=os.environ["LLMTR_API_KEY"], timeout=300.0)
response = client.chat.completions.create(
    model="llmtr/nanbeige4-2-3b",
    messages=[
        {"role": "system", "content": "Her zaman Türkçe cevap ver. İlk satıra faturalama, teknik ya da satis yaz; ikinci satıra tek cümlelik gerekçe yaz."},
        {"role": "user", "content": message},
    ],
    max_tokens=128,
)
print("llmtr/nanbeige4-2-3b", response.choices[0].message.content, response.usage.prompt_tokens, response.usage.completion_tokens)

How do you write Turkish questions for Leyla?

The LLMTR documentation recommends this when you send Turkish text: in noul and score questions write the instructions field and the level names in English, while the text itself can stay Turkish. In a choice question write the option descriptions in Turkish as short keywords; long descriptions do not improve the result. Do not rely on a catch-all option such as other being chosen; if the highest probability is low, for example below 0.6, treat the result as uncertain and send it to a person. Before putting a multi-option classification in production, measure it on 50-100 real examples.

Leyla works with a 1,024-token context; text past the window returns no error, it is cut and the cut part is not evaluated. Choose the part the decision needs yourself. A single request can carry at most 64 questions. Leyla does not appear in the Playground and cannot be called on the chat endpoints; it answers only on /v1/systemone. On Nanbeige4.2 3B the 32,768-token window is shared by the prompt and the answer; answers are generated slowly, so use streaming.

Which one when?

The choices below follow from the differences in request shape, price and context; both models are hosted in Turkey, so hosting does not change the choice. Compare accuracy on your own labelled examples.

  • Routing Turkish support requests to fixed teams: Leyla on LLMTR, llmtr/leyla, with a choice question, at $0.03 per 1M input tokens and an output price of $0.
  • Applying a decision automatically or handing it to a person: Leyla; with the probabilities and confidence values you set the threshold in your own code.
  • A reason, a summary or a draft reply to the customer next to the label: Nanbeige4.2 3B, llmtr/nanbeige4-2-3b; Leyla generates no free text.
  • Text longer than 1,024 tokens that must not be cut: Nanbeige4.2 3B, with its 32,768-token window; on Leyla the part past the window is not evaluated.
  • Several questions about the same text: Leyla takes at most 64 questions per request and counts the text once per question; send only the questions you will use.

Using both models in one flow

A common layout: classify every message with Leyla first, send messages above the probability threshold straight to the right team, and call Nanbeige4.2 3B only for the messages that need a draft reply. That way you do not generate text for every message, and the cost of classification stays at Leyla's input price. Both calls use the same API key and the same balance, which you top up under Dashboard > Billing.

Comparing a Turkish classification on Leyla and Nanbeige4.2 3B

Send the same labelled Turkish messages to both models, then compare accuracy, probabilities, token usage and cost.

  1. Key. Create an API key on llmtr.com and top up your balance under Dashboard > Billing.
  2. Labelled examples. Send 50-100 real messages to Leyla through https://llmtr.com/v1/systemone and to Nanbeige4.2 3B through https://llmtr.com/v1/chat/completions.
  3. Threshold and choice. Compare the share of correct labels, Leyla's probabilities and the cost; choose the threshold and the model id.

Frequently asked questions

Can Leyla write free text?

No. Leyla returns a choice, a score or a yes-probability for each question you define. For a reason, a summary or a draft reply, call Nanbeige4.2 3B through /v1/chat/completions.

What happens if I send Leyla text longer than 1,024 tokens?

The request returns no error; the text is cut and the cut part is not evaluated. Choose the part the decision needs yourself, or use Nanbeige4.2 3B with its 32,768-token window if the whole text must be read.

What does classifying 1,000 messages cost?

Assuming 400 tokens per message: $0.012 on Leyla with one question and $0.024 with two; on Nanbeige4.2 3B $0.415 with a 5-token label and $0.52 when the label and reason take 40 tokens.

Related posts