Modelsaparte-titler 1.0.3

A conversation, named as you type.

aparte-titler picks 3 to 6 words out of the first message and makes them the title. 133 KB for 17 languages, a few milliseconds per title, and nothing leaves the page: the model runs where the message is typed.

Your sidebar, a moment later

Loading the model, 133 KB…

Every title above is the model's, computed in this tab as you type. The latency is measured here, not quoted.

What it (weighs)

133 KBthe file, 17 languagesint3 — a favicon is often larger
17languages in one fileen · fr · es · de · pt · it · nl · pl · sv · da · fi · cs · ro · no · hu · hr · lt
… msper title, one coremeasured above, in your tab
0network callsafter the file: the model runs in the page
0dependenciesa runtime of about 250 lines
90–95%of a 2.4 GB teacherword F1 on real chat — twice the “first five words” rule

The benchmark, every language, every precision and the charts are on the model card →

In aparté, (three lines)

The titler plugin binds the model to the conversation manager: the first message of every conversation is titled by it, and the title lands in the list. The model loads once, the first time a title is needed.

import { loadTitler } from '@aparte/titler-latin';
import { setupTitler } from '@aparte/plugin-titler';

setupTitler(manager, { titler: loadTitler });   // manager: your AparteConversationManager

Without aparté, the runtime alone. One import, one file, one call:

import { loadTitler } from '@aparte/titler-latin';

const titler = await loadTitler();
titler.title("Peux-tu m'expliquer la photosynthèse chez les plantes ?");

npm install @aparte/titler-latin — the file ships inside the package and your bundler copies it as an asset, so the page fetches it from your own origin.

Pick the (file)

One model per language group, four precisions each. The int3 files below ship on npm; every other one is on the model card.

PackageLanguagesSize
@aparte/titler-latin17 — en, fr, es, de, pt, it, nl, pl, sv, da, fi, cs, ro, no, hu, hr, lt133 KB
@aparte/titler-latin-minithe same 17, a smaller vocabularyabout half a point below, on average96 KB
@aparte/titler-efigsp6 — en, fr, es, de, pt, it77 KB
@aparte/titler + one fileone language, from the model cardabout 40 KB

What it (is), and is not

Extractive
It copies 3 to 6 words of the message, in the message’s order. It does not rephrase, summarise or translate — which is why it fits in 133 KB, and why a title reads like the message that started the conversation.
One message
Give it the user’s first message and nothing else — no system prompt, no history. It reads up to 1,200 characters; a long preamble before the actual request costs it some accuracy.
One file
Header, tokenizer and weights in a single .bin, read by a dependency-free runtime of about 250 lines. A Python reference reader gives the same title, word for word, on every message of the benchmark.
Open
MIT, code and weights. Training data and the benchmark are published beside the model, under their own licences.