use cases · Classification & triage

Route it right the first time

Tickets, emails, claims, applications, incidents: the same handful of decisions taken thousands of times a day. The least glamorous case with the clearest payback, because every misrouted item costs somebody twenty minutes and costs a customer their patience.

how it works

How it is built.

Three steps, with the component that does the work in each one.

step 01

Find the categories you really have

qwen3-embedding

Embed a month of real traffic and cluster it. The categories that come out are rarely the ones in the org chart, and starting from the real ones is the difference between 70% and 95% accuracy later.

step 02

Classify everything

deepseek-v4-flash

One call per item, a structured label out, and a confidence with it. Per-token pricing pushes teams to classify a sample and rule the rest by keyword; a flat rate makes full coverage cost the same as sampling.

step 03

Send the doubtful cases to a person

threshold + review queue

Below your confidence threshold the item goes to a human queue with the candidate labels attached. Those corrections are your evaluation set, which is the only honest way to know whether the thing is getting better.

drop-in

Change one line. Keep your code.

Point the OpenAI SDK, or LangChain, LlamaIndex, your own pipeline, at Helmcode. Same calls, same shapes, private models on EU infrastructure.

read_the_docs
classify.py
from openai import OpenAI

client = OpenAI(
    api_key="sk-...",
    base_url="https://api.helmcode.com/v1",  # one line changes
)

# 1 · cluster real traffic to find the categories you have
vectors = client.embeddings.create(
    model="qwen3-embedding",
    input=sample,
)

# 2 · classify everything, with a confidence to threshold
label = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[
        {"role": "system", "content": taxonomy},
        {"role": "user", "content": ticket},
    ],
    response_format={"type": "json_object"},
)

why here

Why on Helmcode.

What changes when you run it on open models, on infrastructure you control.

01

Full coverage stops being a budget question

Classification is the highest-volume thing most companies do with a model, and per-token billing turns volume into a reason not to do it. A flat rate per key removes the arithmetic entirely.

02

Your history is the moat

On dedicated or on-premise plans a small open model fine-tuned on your own labelled history beats a much larger general model on your taxonomy, and it runs on far less hardware. Nobody else has your history.

03

The items are customer data

A ticket queue is a stream of names, addresses, account numbers and complaints. Zero logs means none of it is stored, and the on-premise option means none of it leaves.

In production at

// faq

Classification, answered.

What operations and support teams ask before routing everything through a model.

Is a language model not overkill for classification?

For a stable taxonomy with plenty of labelled data, a small fine-tuned model is the right tool and we would tell you so. The language model earns its place when the categories change, when the text is messy or multilingual, and when you need a reason attached to the label rather than just the label.

How accurate is it?

That depends on your taxonomy and your data, and any number quoted without those is marketing. The way to find out is to run a few thousand of your own items through it and compare against the labels a person gave them, which is a week of work and the only answer worth having.

Does it work in Spanish and in mixed languages?

Yes. The embedding model covers over 100 languages and the classifier handles a ticket that switches language mid-sentence, which is normal in Spanish support queues and is where keyword rules fall apart.

// get started

START BURNING TOKENS

Skip the AI infra work. Deploy your first private inference endpoint today.

Flat rate. EU data. OpenAI API compatible.