Key facts
| Router model | plugsky-fusion escalates per request across tiers (live) |
| Detection | Cheap-tier language and locale detection before generation |
| Embeddings | plugsky-embed-multilingual is live for mixed-language retrieval |
| Models | 30+ models; quality and token cost vary by language |
| Strategies | cost_saver for high-volume locales, custom rules for critical ones |
| Pricing | Flat monthly self-serve plans with no per-token charges on self-serve |
| Free tier | plugsky-micro and plugsky-lite on the free plan, no card required |
| Roadmap | Classifier routing (/v1/plugsky/route, model=auto) is coming soon |
TL;DR
- Detect language before choosing a model, not after.
- Tokenisation and quality vary widely by language — budget per locale.
- Normalise text to remove variation before it costs tokens.
- Evaluate every model change per language, not in aggregate.
- Route by locale and task, not one policy for the whole catalogue.
How it works, step by step
- Profile traffic by language, locale and task to find the real volume mix.
- Add cheap-tier language and locale detection with a confidence threshold.
- Normalise text: digits, diacritics, casing and common variants.
- Assign default tiers per language and task, starting conservative.
- Build per-language evaluation sets and measure quality per candidate model.
- Move a locale to a cheaper tier only when its evaluation set holds.
- Re-profile quarterly as traffic mix and model catalogues change.
Try it yourself
Open the embedding model comparison →
Language mix changes the bill
Two requests with the same meaning can differ substantially in token count depending on the language. Scripts without whitespace boundaries, rich morphology and heavy diacritics all change how text tokenises, and small models are not equally capable in every language. Treating multilingual traffic as one workload hides both effects.
Measure per locale: tokens per request, quality scores and retry rates. Then route. High-volume locales with strong cheap-model performance get cost_saver; locales where cheap tiers fail get a stronger default or a custom rule; one-off languages get evaluated before they are promised at all.
Routing by language and task
Language is a first-class routing signal, and it combines with task type:
- Detection and routing: always cheap; a wrong locale is cheap to correct.
- Classification and sentiment: cheap tiers for well-supported languages, escalate elsewhere.
- Generation and translation: tier by locale quality evidence, not by reputation.
- Critical content: legal, medical and brand copy stay on strong models with human review.
Keep prompts language-specific rather than one generic instruction, and store locale in metadata so retrieval, formatting and evaluation follow the same signal.
Normalisation, retrieval and evaluation
Normalisation pays twice. It reduces tokens by removing diacritic and digit variation, and it improves consistency across near-duplicate inputs. Apply a conservative pass at the edge, keep the original for audit, and index the normalised form.
For retrieval across mixed-language corpora, plugsky-embed-multilingual keeps Arabic, English and code-switched content in one vector space. Build evaluation sets per language from real traffic with human labels, and re-run them after every model or prompt change, because per-language quality shifts independently of aggregate scores. Start on the free plan with plugsky-micro and plugsky-lite to build the harness, then evaluate stronger tiers per locale during the 14-day full-access trial; the live pricing page lists plans.
Honest comparison
| Multilingual choice | Locale-routed on Plugsky | One strong model for all languages | One cheap model for all |
|---|---|---|---|
| Detection | Cheap tier with confidence | Frontier model for detection | Cheap and adequate |
| High-volume locales | Cost_saver after evaluation | Frontier price everywhere | Fine if evaluated |
| Weak-support locales | Escalated per evidence | Native strength | Often fails silently |
| Retrieval | plugsky-embed-multilingual | Depends on provider | Depends on provider |
| Evaluation | Per-language sets | Usually aggregate | Usually aggregate |
Frequently asked questions
Why does multilingual AI cost more?
Tokenisation varies by language and script, so identical meaning can cost different amounts, and small models perform unevenly across languages. Both effects show up only when you measure per locale.
Should I use one model for every language?
No. Evaluate candidate models per language pair and route accordingly. High-volume locales with solid cheap-tier results can run cost_saver; weak locales need stronger defaults or custom rules.
How do I detect language cheaply?
Use a cheap-tier call with a confidence threshold. Misrouting a language costs little; generating a long answer in the wrong one is expensive, so detect before generating.
Does normalisation help cost and quality?
Yes. Standardising digits, diacritics and variants reduces token count and improves consistency. Keep the original text for audit and apply normalisation only to model inputs.
Which embedding model handles mixed languages?
plugsky-embed-multilingual is designed for multilingual and code-switched corpora, so one index can serve queries across languages.
How do I evaluate multilingual quality?
Build per-language sets from real traffic with human labels. Aggregate scores hide locale-specific regressions, and quality changes independently for each language.
Is classifier routing available?
Not yet — classifier routing with model=auto is coming soon. Fusion strategies and per-key rules provide locale-level routing today.
Can I start for free?
Yes. plugsky-micro and plugsky-lite are on the free plan with no card, and the 14-day full-access trial covers stronger models for locale evaluation.