Docs · Features

Engines and providers

Engines are the models that do the work, your local server, a cloud LLM, or a machine-translation service, and every step, judge and extraction resolves one.

What it does#

Nothing in Localization OS translates anything by itself, it orchestrates models. This is where you tell it which model to use, and how to reach it. A built-in provider slot goes live the moment its key, or for a local server its base URL, is configured. You can also create a named, fully configured engine profile with its own base URL, key, model and settings, referenced by any workflow step that wants it.

Three states matter. Mock: no key or base URL configured, everything runs but nothing is real, useful for trying the product with no setup at all. Local: your own model server, no per-call cost, works offline. Cloud: a configured provider, with real spend tracked per call and optionally capped with a monthly ceiling.

Getting started#

  1. Start your local model server and load a model.
  2. In the web UI, go to Setup AI, Local / self-hosted engine, and set the base URL.
  3. Use Test connection, then Fetch models, and pick one as the default.
  4. Leave workflow steps' provider as local with a blank model, so they all use that default, and changing it later changes them all at once.
config set local_base_url http://localhost:1234/v1
providers key set claude
engine create --name "DeepL prod" --kind deepl --secret api_key=YOUR_KEY
engine list

Works with#

  • Workflows: every translate and check step resolves an engine, its own provider and model if set, otherwise the run default.
  • Documents: translating a document dispatches per-segment engine calls, bounded by a concurrency setting; translation-memory hits skip the engine entirely.
  • Evaluations: candidates and the LLM judge each resolve an engine, which is how two setups are compared side by side.
  • Glossaries: term extraction is a real engine call and is spend-capped; offline it still works against the deterministic mock.
  • Memory: memory only ever appears inside a prompt an engine receives.

Current limits#

Current limits

The offline mock is selected explicitly: choose Mock in Setup AI, or set the default provider to mock. On a configured install, a built-in provider with no key refuses to translate rather than silently degrading to placeholder output. A named engine profile that is misconfigured is refused loudly too, since it was an explicit choice.

Translation output that looks like placeholder text means the mock engine is active; the provider indicators in the interface show live versus mock at a glance.

A stored cloud key that no longer decrypts is treated as a dead engine rather than an empty one, and needs to be re-entered.

A spend cap, where configured, is a brake rather than a budget: it refuses new paid calls once reached. Local and mock calls are exempt.

Model output limits are real: a very long output is retried automatically with a larger budget up to the model's own ceiling, and then it fails honestly rather than truncating silently.

An optional, admin-only record of exactly what was sent to a model and what came back writes nothing at all while it is switched off.